home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / admin / bugs / bugs.archive < prev    next >
Encoding:
Text File  |  1992-07-01  |  204.5 KB  |  6,369 lines

  1.  
  2. Log-Number: 31981
  3. Subject: status of IOC_MAP ioctl?
  4. Date: Wed, 01 Jan 92 18:49:46 PST
  5. From: Mike Kupfer <kupfer>
  6.  
  7. The Sprite server is getting back GEN_INVALID_ARG when it tries to
  8. inform Allspice that it (the Sprite server) is about to map a file.
  9.  
  10. As near as I can tell, this is because the IOC_MAP case in
  11. Fsio_FileIOControl has been if'd out... since 1989.
  12.  
  13. It looks like the ioctl is no longer valid.  If it were enabled, it
  14. would call Fsconsist_MappedConsistency, which has been ifdef'd into a
  15. no-op.
  16.  
  17. So this this simply a matter of dead code that should be flushed, or
  18. is this code that doesn't quite work right so it's turned off?
  19.  
  20. Also, we should fix Vm_MmapInt to pay attention to the return value
  21. from Fs_FileBeingMapped.
  22.  
  23. mike
  24.  
  25.  
  26. Log-Number: 31982
  27. Date: Thu, 2 Jan 92 11:26:05 PST
  28. From: shirriff (Ken Shirriff)
  29. Subject: Re: status of IOC_MAP ioctl?
  30.  
  31. The IOC_MAP and Fsconsist_MappedConsistency is dead code, so it can be
  32. taken out.  (The original plan was to ensure consistency of mapped files
  33. across multiple machines.  However, since there wasn't anyone wanting to
  34. use this feature I didn't implement it.)
  35.  
  36. Ken
  37.  
  38.  
  39. Log-Number: 31983
  40. Date: Thu, 2 Jan 92 15:49:26 PST
  41. From: shirriff (Ken Shirriff)
  42. Subject: Strange pmake messages
  43.  
  44. If I interrupt a pmake with a ^C, I get a bunch of messages:
  45. JobCondPassSig: couldn't send signal 2 to process d1d1d: no such process
  46. JobInterrupt: couldn't send signal 2 to process 41d36: no such process
  47.  
  48. I don't think pmake used to do this.  It's not really a problem, but it's
  49. kind of strange.
  50.  
  51. Ken
  52.  
  53.  
  54. Log-Number: 31984
  55. Subject: Re: Strange pmake messages 
  56. Date: Thu, 02 Jan 92 16:34:38 PST
  57. From: Mike Kupfer <kupfer>
  58.  
  59. When I was working on the pmake hangs I fixed all the kill()
  60. statements to check for error returns.  Some of the checks always
  61. print a warning message, others only print something if debugging is
  62. turned on.
  63.  
  64. If people think the messages are a nuisance, I can fix pmake so that a
  65. warning is printed only if debugging is turned on.  However, I would
  66. rather not spend the time to figure out when it is reasonable for
  67. kill() to fail (so that a warning is only printed when something
  68. unexpected happens).
  69.  
  70. mike
  71.  
  72.  
  73. Log-Number: 31985
  74. Date: Fri, 3 Jan 92 10:25:32 -0800
  75. From: sullivan@postgres.Berkeley.EDU (Mark Sullivan)
  76. Subject: Sprite dies if process table overflows
  77.  
  78.  
  79. I ran an application program that forked N processes, where N was a 
  80. command line argument.   I corrupted the argument and the program tried
  81. to create 4000 processes.  Sprite printed a message to the console about
  82. "couldn't find a free PCB" and went into the debugger.  My program is
  83. fixed now, so this isn't a high priority bug as far as my work is concerned.
  84.  
  85. Mark
  86.  
  87.  
  88. Log-Number: 31987
  89. Subject: gremlin and R5
  90. Date: Fri, 03 Jan 92 12:52:20 PST
  91. From: Mike Kupfer <kupfer>
  92.  
  93. Gremlin doesn't work with R5 because R5 doesn't have all the fonts
  94. that it wants.  Part of the problem may simply be one of aliasing
  95. (i.e., the fonts are there, but gremlin expects aliases that weren't
  96. set up for R5).  However, there may also be fonts that were locally
  97. installed for R4 but not for R5, and gremlin might rely on some of
  98. those, too.
  99.  
  100. mike
  101.  
  102.  
  103. Log-Number: 31999
  104. Date: Fri, 10 Jan 92 00:54:48 PST
  105. From: shirriff (Ken Shirriff)
  106. Subject: X11R5 gremlin problem fixed
  107.  
  108. I fixed two problems that prevented gremlin from working in X11R5.
  109.  
  110. a) X11R5 doesn't have the font screen.r.12 which gremlin expected.  I guess
  111. this font is no longer supported or something.  I switched gremlin to use 6x12.
  112. There may be other programs that use screen.r.12; they will have to be
  113. changed too for X11R5.
  114.  
  115. b) For some reason creating a window with CWDontPropagate set caused a
  116. BadValue (integer parameter out of range for operation) error from X.
  117. I don't know what DontPropagate does or why it caused an error, but gremlin
  118. seems to work without it.  Any explanation would be welcome.
  119.  
  120. Ken
  121.  
  122.  
  123. Log-Number: 32006
  124. Date: Fri, 10 Jan 92 19:16:28 PST
  125. From: bsw!adam@uunet.UU.NET (Adam de Boor)
  126. Subject: X11R5 gremlin problem fixed
  127.  
  128. I believe the DontPropagate mask for a window can keep pointer and keyboard
  129. events from being delivered higher up the window heirarchy ("if I don't want
  130. it, no one else can have it either"), but it can only be set in an
  131. XChangeWindowAttributes call, not when the window is being created, for
  132. whatever reason (you'd have to look in the protocol spec to find out).
  133.  
  134. a
  135.  
  136.  
  137. Log-Number: 32000
  138. Date: Fri, 10 Jan 92 13:16:00 PST
  139. From: ouster (John Ousterhout)
  140. Subject: New gremlin
  141.  
  142. Unfortunately, the newly-installed gremlin, which avoids using
  143. "screen.r.12" or some such font that isn't available in R5, looks
  144. horrible to me (text unreadably small) and some of the other fonts
  145. appear wrong too (smaller than old gremlin), so that there is no
  146. longer a proper WYSIWYG effect.  I've backed out the old version
  147. from /X11/R4/cmds.sun4.old so I can get my stuff ready for the
  148. X Conference.  If you need a font for R5, why not just copy it over
  149. from the R4 font directory?  The "screen" family isn't part of
  150. X proper (I copied it from X10 to X11, and from R1 to R2, R2 to
  151. R3, and R3 to R4).
  152.  
  153.  
  154. Log-Number: 32001
  155. Date: Fri, 10 Jan 92 13:51:02 PST
  156. From: shirriff (Ken Shirriff)
  157. Subject: Re: New gremlin
  158.  
  159. I started copying the screen fonts from R4 to R5, but it turned out to be
  160. horribly complex.  They've changed the format of the fonts, so you have
  161. to run them all through a converter.  Then, setting up the imake files
  162. correctly is also a nasty task.  I think we would be much better moving
  163. gremlin forward to use the new fonts, rather than continually trying to
  164. keep the obsolete fonts.
  165. (Sorry about installing a new gremlin just before the conference; I didn't
  166. think of that.)
  167.  
  168. Ken
  169.  
  170.  
  171. Log-Number: 31988
  172. Subject: race condition in RPC code?
  173. Date: Sun, 05 Jan 92 17:09:45 PST
  174. From: Mike Kupfer <kupfer>
  175.  
  176.  
  177. I just tracked down a race in the Sprite server between the network
  178. and timer.  I think it's a potential problem for the native Sprite
  179. kernel, but I'm not sure.  Maybe it's only a problem with
  180. multiprocessors?  Or maybe it's not a problem at all, because some of
  181. these routines are called at interrupt level, rather than by dedicated
  182. processes.  You tell me.
  183.  
  184. Here's the race (with time going down).  Note that in the Sprite
  185. server, the timer queue is serviced by waking up a separate process
  186. that finds the "expired" elements in the queue and calls their
  187. routines.
  188.  
  189. requesting        timer             net input
  190. process            process            process
  191. -----            -----            -----
  192. Send RPC request.
  193. Put channel in 
  194. timeout queue.
  195. Block on channel's
  196. condition variable and
  197. release channel's
  198. master lock.
  199.  
  200.             RPC times out.
  201.             Get timer master     Get RPC response.
  202.             lock.  Take channel     Obtain channel's
  203.             off of timeout queue.    master lock.
  204.  
  205.             Release timer master    
  206.             lock.            
  207.  
  208.                         Take channel off
  209.                         timeout queue (fails
  210.                         silently).
  211.  
  212.             Call Rpc_Timeout.
  213.             Block on channel's
  214.             master lock.
  215.  
  216.                         Broadcast on channel's
  217.                         condition variable.
  218.                         Release channel's
  219.                         master lock.
  220.  
  221. Get channel's master
  222. lock.  Process RPC
  223. response, put channel
  224. back on timeout queue
  225. (the response was an 
  226. ACK?).  Block on 
  227. channel's condition
  228. variable & release
  229. its master lock.
  230.  
  231.             Obtain channel's master
  232.             lock.  Broadcast on
  233.             channel's cond. variable
  234.             and release master lock.
  235.  
  236. Obtain channel's master
  237. lock.  Resend RPC 
  238. request and put channel
  239. on timeout queue.
  240.  
  241. ----------
  242. This second call to put the channel on the timeout queue leads to
  243. disaster, because it's already on the queue and the timer and list
  244. packages can't deal with it.
  245.  
  246. Anyway, the bug in all this is that RpcClientDispatch doesn't check
  247. the return code from Timer_DescheduleRoutine.  From looking at the
  248. code, my guess is that this check should be done much earlier (e.g.,
  249. right after the "Discover our own Sprite ID" code), and
  250. RpcClientDispatch should bail out if Timer_DescheduleRoutine returns
  251. FALSE.  Does anyone think there will be problems doing it this way?
  252.  
  253. thanks,
  254. mike
  255.  
  256.  
  257.  
  258.  
  259. Log-Number: 32008
  260. Subject: Re: race condition in RPC code?
  261. Date: Sun, 12 Jan 92 20:11:52 PST
  262. From: Mike Kupfer <kupfer>
  263.  
  264. I said
  265.  
  266. > From looking at the
  267. > code, my guess is that this check should be done much earlier (e.g.,
  268. > right after the "Discover our own Sprite ID" code), and
  269. > RpcClientDispatch should bail out if Timer_DescheduleRoutine returns
  270. > FALSE.
  271.  
  272. This is false, because you don't want to deschedule the timer element
  273. until you've made sure you aren't going to throw the packet away for
  274. some reason (e.g., bogus ID number).
  275.  
  276. mike
  277.  
  278.  
  279. Log-Number: 31991
  280. Date: Tue, 7 Jan 92 15:07:56 PST
  281. From: shirriff (Ken Shirriff)
  282. Subject: Kernel build problem
  283.  
  284. If your mainHook.c for the sun4c doesn't have
  285. main_PrintInitRoutines = FALSE; in Main_InitVars(),  the kernel will
  286. immediately crash on execution.
  287. (I found this out since my kernels wouldn't build but John's would.  The
  288. reason was I didn't have the line.  My kernels used to work, so I don't
  289. know why this line suddenly became significant.)
  290.  
  291. Ken
  292.  
  293.  
  294. Log-Number: 31993
  295. Date: Wed, 8 Jan 92 01:27:27 PST
  296. From: shirriff (Ken Shirriff)
  297. Subject: Profiling bugs fixed
  298.  
  299. I've fixed a couple bugs in profiling:
  300. a) The kernel wouldn't recognize profiled sun programs.
  301. b) The pc arithmetic would overflow, so if you had a pc>0x10000, it would
  302. wrap around and the profiler would think the program was somewhere else.
  303. These fixes will be in the next kernel.
  304.  
  305. Ken
  306.  
  307.  
  308. Log-Number: 31994
  309. Date: Thu, 9 Jan 92 08:40:39 PST
  310. From: ouster (John Ousterhout)
  311. Subject: Allspice reboot
  312.  
  313. I rebooted Allspice this morning because it suddenly stopped
  314. servicing clients.  It appeared OK from the console, and I
  315. realized after I rebooted it that this was probably just a case
  316. of the timer interrupt lossage and that I probably should have
  317. tried L1-A and continue before rebooting.  Sorry...
  318.  
  319.                     -John-
  320.  
  321.  
  322. Log-Number: 31995
  323. Subject: potential hang in RPC channel allocation code
  324. Date: Thu, 09 Jan 92 14:36:12 PST
  325. From: Mike Kupfer <kupfer>
  326.  
  327. I found this bug in the Sprite server; it also appears to be present
  328. in the kernel.
  329.  
  330. If there are no free channels, RpcChanAlloc waits for the condition
  331. variable freeChannels.  RpcChanFree does the broadcast on
  332. freeChannels, but only if numFreeChannels is exactly equal to one.
  333.  
  334. Unfortunately, RpcChanFree is not the only routine that increments
  335. numFreeChannels.  RpcChanClose can also increment numFreeChannels, and
  336. it doesn't do any broadcast on freeChannels.  This can cause a process
  337. to get stuck in RpcChanAlloc.  If that process holds a sufficient
  338. number of important locks, things can grind to a halt.
  339.  
  340. Either (1) RpcChanClose should check numFreeChannels and do the
  341. broadcast if necessary (perhaps by calling an internal version of
  342. RpcChanFree), or (2) RpcChanFree should change its test from "== 1" to
  343. ">= 1".
  344.  
  345. mike
  346.  
  347.  
  348. Log-Number: 31996
  349. Subject: dumps failed last night
  350. Date: Thu, 09 Jan 92 15:15:00 PST
  351. From: Mike Kupfer <kupfer>
  352.  
  353. The dumps failed last night, with the following messages in hijack's
  354. syslog:
  355.  
  356.   Warning: Exabyte 8500 at SCSI#0 Target 4 LUN 0 error: media error - info bytes 0x0 0x0 0xdd 0xb
  357.   Additional Sense Code: 0x9
  358.   Additional Sense Code Qualifier: 0x0
  359.   EXB8500 Fault Symptom Code = 0xae
  360.   Warning: Exabyte 8500 at SCSI#0 Target 4 LUN 0 error: media error - info bytes 0x0 0x0 0xdd 0xb
  361.   Additional Sense Code: 0x9
  362.   Additional Sense Code Qualifier: 0x0
  363.   EXB8500 Fault Symptom Code = 0xae
  364.  
  365. I couldn't find an Exabyte reference manual, so I don't know what
  366. these messages mean.
  367.  
  368. I notice that the tape in question (#193) is a "Hi8" tape, which is
  369. not the same type as most of our other dump tapes.
  370.  
  371. mike
  372.  
  373.  
  374. Log-Number: 31997
  375. Date: Thu, 9 Jan 92 17:00:02 PST
  376. From: shirriff (Ken Shirriff)
  377. Subject: X access control disabled
  378.  
  379. I've installed a new sun4 X11R5 server that fixes Mike's problem with
  380. access control.  The access control mode is defined in the file
  381. server/include/site.h.
  382.  
  383. Ken
  384.  
  385.  
  386. Log-Number: 32005
  387. Subject: new Emacs is broken
  388. Date: Fri, 10 Jan 92 17:53:06 PST
  389. From: Mike Kupfer <kupfer>
  390.  
  391. ... at least on a sun4.  The compilation subwindow stuff (e.g,.
  392. "grep") hangs, rather than detect that the subprocess has finished.
  393.  
  394. mike
  395.  
  396.  
  397. Log-Number: 32007
  398. Date: Sat, 11 Jan 92 23:51:05 PST
  399. From: mottsmth (Jim Mott-Smith)
  400. Subject: new Emacs is broken
  401.  
  402.  
  403. Emacs is fixed. The problem was due to a change
  404. made in the fcntl module which was picked up
  405. when I relinked emacs yesterday. I backed out 
  406. the modification, rebuilt libc.a and relinked emacs.
  407. Jhh, the questionable version is fcntl.c.bak.
  408.  
  409. -- Jim M-S
  410.  
  411.  
  412.  
  413.  
  414. Log-Number: 32010
  415. Date: Mon, 13 Jan 92 11:20:19 PST
  416. From: mottsmth (Jim Mott-Smith)
  417. Subject: fcntl 
  418.  
  419.  
  420. Emacs does a fcntl(fd, F_SETFL, O_NDELAY) to set 
  421. non-blocking I/O.  This used to become a Fs_IOControl
  422. with the IOC_SET_BITS parameter.  In the new version
  423. of fcntl it uses IOC_SET_FLAGS, which doesn't seem
  424. to do the job.  A read on the channel by emacs hangs
  425. waiting for data.
  426.  
  427. -- Jim M-S
  428.  
  429.  
  430. Log-Number: 32012
  431. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  432. Date: Mon, 13 Jan 1992 16:15:59 PST
  433. Subject: volatile and mips
  434.  
  435. Our sprite.h defines volatile to be nothing if __STDC__ is not set. The
  436. mips compiler does not define __STDC__, but it does understand volatile.
  437. If we change sprite.h then we can probably compile the net and dev
  438. modules with optimization turned on. 
  439.  
  440. John
  441.  
  442.  
  443. Log-Number: 32014
  444. Subject: R5 startup unreliable
  445. Date: Tue, 14 Jan 92 14:27:10 PST
  446. From: Mike Kupfer <kupfer>
  447.  
  448. I have been having random problems starting up X11 R5 on Sage.  xinit
  449. complains
  450.  
  451.   xinit: invalid argument (errno 22): Server error.
  452.  
  453. and then exits.  However, the server itself does in fact start up, so
  454. I have to do an L1-k to get back to the shell and kill it.  When I try
  455. to start X a second time, everything works okay.
  456.  
  457. mike
  458.  
  459.  
  460. Log-Number: 32015
  461. Subject: two raid1 crashes
  462. Date: Tue, 14 Jan 92 14:56:22 PST
  463. From: Mike Kupfer <kupfer>
  464.  
  465. The first one everyone knows about (/r3 had a bad block), but I don't
  466. think a message about it made it into the log.
  467.  
  468. The second one was a mystery crash just a few minutes ago.  The
  469. display was dark, so we couldn't read any console messages.  Also,
  470. raid1 didn't respond to "kmsg -v" (though someone may have hit the
  471. reset switch by the time we tried that), so we just rebooted.
  472.  
  473. By the way, when raid1 rebooted after the second crash, there were a
  474. bunch of messages of the form "DMA space already valid at xxx".  Does
  475. anyone know if this is something to be worried about?
  476.  
  477. mike
  478.  
  479.  
  480. Log-Number: 32016
  481. Date: Tue, 14 Jan 92 14:58:50 PST
  482. From: shirriff (Ken Shirriff)
  483. Subject: Re: two raid1 crashes
  484.  
  485. Raid1 might have crashed a few minutes ago because I was doing some Ultranet
  486. things.  (But that might not be the cause.)
  487.  
  488. Ken
  489.  
  490.  
  491. Log-Number: 32017
  492. Date: Tue, 14 Jan 92 17:27:58 PST
  493. From: mottsmth (Jim Mott-Smith)
  494. Subject: /usr/sww/bin/perl seg faults
  495.  
  496.  
  497. The perl script classgrid runs successfully
  498. with the local Perl, but dies with a seg 
  499. fault using /usr/sww/bin/Perl.
  500.  
  501. -- Jim M-S
  502.  
  503.  
  504. Log-Number: 32018
  505. Date: Tue, 14 Jan 92 17:57:34 PST
  506. From: shirriff (Ken Shirriff)
  507. Subject: Bad Ultranet board in fenugreek
  508.  
  509. The Ultranet board in fenugreek times out on boot.  According to jhh, this
  510. is likely a problem with the board and should be fixed.
  511.  
  512.  
  513. Log-Number: 32019
  514. Date: Tue, 14 Jan 92 17:58:20 PST
  515. From: shirriff (Ken Shirriff)
  516. Subject: Sun3 crashes
  517.  
  518. About every 4 hours catnip crashes with "Fatal Error: Current process is NIL".
  519. This may be a sun3 problem or an ultranet problem.
  520.  
  521. Ken
  522.  
  523.  
  524. Log-Number: 32021
  525. Subject: raid1 reboot: MachHandleWindowUnderflow
  526. Date: Fri, 17 Jan 92 19:54:26 PST
  527. From: Mike Kupfer <kupfer>
  528.  
  529. Raid1 was killing some of my commands with 
  530.  
  531.   MachHandleWindowUnderflow: killing process.
  532.  
  533. so I rebooted it.
  534.  
  535. mike
  536.  
  537.  
  538. Log-Number: 32022
  539. Subject: Fs_GetAttrStream can return wrong size?
  540. Date: Sat, 18 Jan 92 20:16:18 PST
  541. From: Mike Kupfer <kupfer>
  542.  
  543. I have a 32MB file that the Sprite server created.  Unfortunately, the
  544. Sprite server seems to get into a state where Fs_GetAttrStream claims
  545. that it has a size of 0.  (Restarting the server makes the problem go
  546. away.) 
  547.  
  548. I suspect the problem has something to do with recovery, because
  549. creating the file often causes Mach to hang for long enough that the
  550. Sprite server has to do recovery with raid1.  Other attributes (owner,
  551. last access time, permissions) seem to be okay, so I don't understand
  552. why just the size would be wrong.  
  553.  
  554. Has anyone seen something like this in native Sprite?  The file is
  555. mapped (i.e., being grown by Fs_PageWrite) when the Sprite server does
  556. recovery with raid1, in case that's relevant.
  557.  
  558. mike
  559.  
  560.  
  561. Log-Number: 32024
  562. Subject: two "bad stream type" crashes
  563. Date: Sun, 19 Jan 92 19:05:44 PST
  564. From: Mike Kupfer <kupfer>
  565.  
  566. Sage crashed twice recently with
  567.  
  568.   Fs_RetSegPtr, bad stream type <some large negative number>
  569.  
  570. The panic actually happens in Fs_GetSegPtr; it's a typo in the code.
  571.  
  572. I ignored the first crash but tried to debug the second one. 
  573. Basically, the file handle passed to Fs_GetSegPtr is garbage.  My
  574. guess is that a file handle for a text segment is getting freed and
  575. the VM module isn't getting notified, so the VM segment has a dangling
  576. pointer.
  577.  
  578. The segment in question in the second crash had an objFileName of
  579. /users/kupfer/cmds.ind/msgchk, which is a symbolic link to
  580. /usr/sww/bin/msgchk, so I wonder if this is somehow related to the
  581. execution of nfsmounted files.
  582.  
  583. If we can't find this problem by inspection, one idea I had was to
  584. change REMOVE_HANDLE() to call a VM debug routine to verify that the
  585. handle isn't pointed to by any segments.
  586.  
  587. mike
  588.  
  589. P.S. Here's the stack backtrace:
  590.  
  591. #0  panic (__builtin_va_alist=-167567283) (sysPrintf.c line 220)
  592. #1  0xf603210c in Fs_GetSegPtr () (fsStreamOps.c line 944)
  593. #2  0xf60c5198 in CleanSegment (
  594.     segPtr=(struct Vm_Segment *) 0xf619f22c) (vmSeg.c line 886)
  595. #3  0xf60c502c in DeleteSeg (
  596.     segPtr=(struct Vm_Segment *) 0xf619f22c) (vmSeg.c line 826)
  597. #4  0xf60c48cc in Vm_SegmentNew (type=3, 
  598.     filePtr=(struct Fs_Stream *) 0xffffffff, 
  599.     fileAddr=0, 
  600.     numPages=1, 
  601.     offset=122879, 
  602.     procPtr=(struct Proc_ControlBlock *) 0xf6438990) 
  603.     (vmSeg.c line 466)
  604. #5  0xf608dec0 in SetupVM (
  605.     procPtr=(struct Proc_ControlBlock *) 0xf6438990, 
  606.     objInfoPtr=(ProcObjInfo *) 0xf61a7208, 
  607.     codeFilePtr=(struct Fs_Stream *) 0xf644b9f8, 
  608.     usedFile=1, 
  609.     codeSegPtrPtr=(struct Vm_Segment **) 0xf8155c24, 
  610.     execInfoPtr=(Vm_ExecInfo *) 0xf61a772c) (procExec.c line 1586)
  611. #6  0xf608d5f4 in DoExec (fileName=(char *) 0xffffffff, 
  612.     userArgsPtr=(UserArgs *) 0xf8155dc8, 
  613.     encapPtrPtr=(ExecEncapState **) 0xffffffff, 
  614.     debugMe=0) 
  615.     (procExec.c line 1185)
  616. #7  0xf608c8a0 in Proc_Exec (fileName=(char *) 0x57088, 
  617.     argPtrArray=(char **) 0x575b8, 
  618.     envPtrArray=(char **) 0x1dfffa18, 
  619.     debugMe=0, 
  620.     host=0) (procExec.c line 390)
  621. #8  0xf608c704 in Proc_ExecEnv (fileName=(char *) 0x57088, 
  622.     argPtrArray=(char **) 0x575b8, 
  623.     envPtrArray=(char **) 0x1dfffa18, 
  624.     debugMe=0) (procExec.c line 258)
  625. #9  0xf601286c in MachFetchArgsEnd ()
  626.  
  627.  
  628. Log-Number: 32025
  629. Date: Sun, 19 Jan 92 21:42:28 PST
  630. From: mottsmth (Jim Mott-Smith)
  631. Subject: vfscanf
  632.  
  633.  
  634. Sprite's handling of the following is inconstent with
  635. both SunOS and Ultrix. If I read K&&R right, Sprite is wrong.
  636.  
  637. Sprite says:
  638.      cnt=2, i=3, j=16777214
  639. on a sun4 and
  640.     cnt=2, i=3, j=-256
  641. on a decstation. (Presumably just byte order differences).
  642.  
  643. The others say:
  644.     cnt=1, i=3, j=-2
  645.  
  646. -- Jim M-S
  647.  
  648. ======================================
  649.  
  650. #include <stdio.h>
  651.  
  652. int
  653. main()
  654. {
  655.     static char buf[10] = "3 4";
  656.     int n;
  657.     int i = -1;
  658.     int j = -2;
  659.  
  660.     n = sscanf(buf, "%d %[^4]", &i, &j);
  661.  
  662.     printf("cnt=%d, i=%d, j=%d\n", n, i, j);
  663.  
  664. }
  665.  
  666.  
  667. Log-Number: 32029
  668. Subject: file attributes not updated correctly
  669. Date: Tue, 21 Jan 92 13:04:37 PST
  670. From: Mike Kupfer <kupfer>
  671.  
  672.  
  673. I've just ran into an (other) instance of file attributes being cached
  674. and not correctly updated.  If host A caches the attributes for
  675. program myProg and host B then changes myProg to be setuid to root, A
  676. will not get the new permissions.
  677.  
  678. I understand that attribute consistency is something of a swamp, but
  679. there are two specific things that could be done to make the problem
  680. less burdensome.
  681.  
  682. First, if host A does a "get attributes" on the program myProg (e.g.,
  683. the user does "ls myProg" to verify that the permissions are right),
  684. then the cached attributes should get updated.  Currently this doesn't
  685. happen.
  686.  
  687.   sage% ./ls -ld tmp/foo
  688.   d---------  2 kupfer        512 Jan 20 12:24 tmp/foo
  689.   sage% ./ls tmp/foo
  690.   tmp/foo unreadable
  691.   sage% ./ls -l ls
  692.   -rwsrwxr-x  1 root        78930 Nov 20 00:25 ls
  693.   sage% migrate ./ls -l tmp/foo
  694.   total 28
  695.   -rw-r--r--  1 kupfer      28038 Jan 20 12:24 Todo
  696.   sage% ./ls tmp/foo
  697.   tmp/foo unreadable
  698.  
  699. Second, there should be a command (or an option to fscmd) that the
  700. user can run to force attributes consistency.
  701.  
  702. Brent, do you have any pointers to existing code that would help make
  703. either of these two suggestions work?
  704.  
  705. thanks,
  706. mike
  707.  
  708.  
  709. Log-Number: 32030
  710. Date: Tue, 21 Jan 92 13:27:34 PST
  711. From: pmchen (Peter M. Chen)
  712. Subject: pause during cleaning
  713.  
  714. I think this is a well-known problem, but I have some measurements which
  715. may be enlightening.
  716.  
  717. I have some measurements of I/O's that took 71, 81, 96, and 114 SECONDS
  718. to complete (I think this happened during cleaning).  This was on mustard,
  719. a ds5000 (I think it was running 1.109).  The files were on a local disk
  720. connected to mustard; there was only one process issuing I/O to that disk.
  721.  
  722. Is there anything that can be done to make cleaning less disruptive?
  723.  
  724. Pete
  725.  
  726.  
  727. Log-Number: 32031
  728. Date: Tue, 21 Jan 92 20:00:49 PST
  729. From: mottsmth (Jim Mott-Smith)
  730. Subject: Lust died with 'packet too large' message
  731.  
  732.  
  733. Lust died for no apparent reason with
  734.     OutputPacket: packet too large (4174)
  735.  
  736. I couldn't get anywhere with Dill so I rebooted Lust.
  737.  
  738. -- Jim M-S
  739.  
  740.  
  741. Log-Number: 32033
  742. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  743. Date: Wed, 22 Jan 1992 11:48:42 PST
  744. Subject: negative minor number in handle
  745.  
  746.  
  747. Hijack crashed running 1.109 when it tried to clean a dirty block
  748. from a file.  The fileNum field in the Fscache_Block structure for
  749. the block was set to 912, but the minor number in the Fs_HandleHeader
  750. structure associated with the Fscache_FileInfo was set to -912, so
  751. it paniced.  Looks to me like somehow 912 got changed to -912,
  752. which requires more than changing a single bit.  I don't think we
  753. ever to arithmetic on minor number, so the odds of fixing this one
  754. are low.
  755.  
  756. John
  757.  
  758.  
  759. Log-Number: 32034
  760. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  761. Date: Wed, 22 Jan 1992 11:57:43 PST
  762. Subject: Re: negative minor number in handle
  763.  
  764.  
  765. I've got some more information on this bug.  When Hijack tried to
  766. write back the file the rpc timed out because Lust was down.  When
  767. Lust rebooted and recovered the re-open of the file in question
  768. failed due to a version mismatch.  Hijack subsequently crashed
  769. trying to write the file back.  This shouldn't have happened because
  770. Hijack should have cleaned up the file's state once it couldn't be
  771. reopened.  Perhaps there is a synchronization problem between the
  772. block cleaner and the cleanup of a failed reopen?
  773.  
  774. John
  775.  
  776.  
  777.  
  778. Log-Number: 32035
  779. Date: Wed, 22 Jan 92 12:01:18 PST
  780. From: ouster (John Ousterhout)
  781. Subject: More on trashed mailbox
  782.  
  783. Incidentally, my mailbox seems to have a bunch of NULLs in it now
  784. that suddenly appeared around the same time that a bunch of my
  785. messages disappeared.
  786.                     -John-
  787.  
  788.  
  789. Log-Number: 32038
  790. From: mgbaker (Mary Gray Baker)
  791. Subject: timer queue garbaged
  792. Date: Wed, 22 Jan 92 21:38:49 PST
  793.  
  794. Jaywalk just died while trying to open a directory.  It was trying to
  795. insert a new element into the timer queue, but it tried to insert the element
  796. in front of another one that was garbage.
  797.  
  798.  
  799. #0  panic (__builtin_va_alist=-167540547) (sysPrintf.c line 228)
  800. sysPrintf.c: no such file or directory.
  801. #1  0xf6038d50 in MachHandleTrap (trapType=112, pcValue=(char *) 0xf60dc4fc "\320\002\240\f\200\242@\b\006\200", trapPsr=286265284) (sun4c.md/machCode.c line 1854)
  802. #2  0xf603aff4 in MachReturnFromTrap ()
  803. #3  0xf60dc4d0 in Timer_ScheduleRoutine (newElementPtr=(Timer_QueueElement *) 0xf626d4c0, interval=1) (timerQueue.c line 357)
  804. #4  0xf60c5e14 in RpcDoCall (serverID=1, chanPtr=(struct RpcClientChannel *) 0xf626d4b0, storagePtr=(struct Rpc_Storage *) 0xf8239798, command=7, srvBootIDPtr=(unsigned int *) 0xf82392ac, notActivePtr=(ClientData) 0xf82392a4, fastBootPtr=(ClientData) 0xf823929c) (rpcClient.c line 189)
  805. #5  0xf60c4700 in Rpc_Call (serverID=1, command=7, storagePtr=(struct Rpc_Storage *) 0xf8239798) (rpcCall.c line 204)
  806. #6  0xf6086e44 in FsrmtOpen (prefixHandle=(struct Fs_HandleHeader *) 0xf648e0b8, relativeName=(char *) 0xf643fae8 "kernel/mgbaker/printOn", argsPtr=(char *) 0xf8239908 "", resultsPtr=(char *) 0xf82398d0 "\370#\2320\366\f\367\314\370#\231p", newNameInfoPtrPtr=(struct Fs_RedirectInfo **) 0xf823982c) (fsrmtDomain.c line 301)
  807. #7  0xf6082c90 in Fsprefix_LookupOperation (fileName=(char *) 0xf643fadc "/sprite/src/kernel/mgbaker/printOn", operation=2, follow=4096, argsPtr=(char *) 0xf8239908 "", resultsPtr=(char *) 0xf82398d0 "\370#\2320\366\f\367\314\370#\231p", nameInfoPtr=(struct Fs_NameInfo *) 0xf6463450) (fsprefixOps.c line 169)
  808. #8  0xf605450c in Fs_Open (...) (...)
  809. #9  0xf6054a58 in Fs_ChangeDir (...) (...)
  810. #10 0xf60641f0 in Fs_ChangeDirStub (...) (...)
  811. #11 0xf603baec in MachFetchArgsEnd ()
  812.  
  813.  
  814. Mary
  815.  
  816.  
  817. Log-Number: 32043
  818. Subject: compat egrep botches "or" syntax
  819. Date: Sun, 26 Jan 92 15:59:02 PST
  820. From: Mike Kupfer <kupfer>
  821.  
  822. egrep is supposed to recognize "stringA|stringB" as matching stringA
  823. or stringB.  However, the compat version of egrep requires that the
  824. vertical bar be escaped.  Thus
  825.  
  826.   sage% which egrep
  827.   /sprite/cmds.compat/egrep
  828.   sage% echo foo | egrep "foo|bar"
  829.   sage% echo foo | egrep "foo\|bar"
  830.   foo
  831.   sage% echo foo | /sprite/cmds/egrep "foo|bar" 
  832.   foo
  833.   sage% echo foo | /sprite/cmds/egrep "foo\|bar"
  834.   sage% 
  835.  
  836. mike
  837.  
  838.  
  839. Log-Number: 32044
  840. From: dlong@cats.UCSC.EDU
  841. Date: Mon, 27 Jan 92 13:11:22 -0800
  842. Subject: LFS panic
  843.  
  844. I'm running the 106 kernel over here, and just started getting the
  845. following panic: "LfsOkToRead read from clean segment".  Is there
  846. any chance a newer kernel will solve the problem?  By the way,
  847. almost all the partitions are LFS, including / and /sprite.
  848. I'm not sure which one is causing the panic.
  849.  
  850. dl
  851.  
  852.  
  853. Log-Number: 32157
  854. Subject: /user1/jamin is messed up
  855. Date: Wed, 26 Feb 92 17:37:23 PST
  856. From: Mike Kupfer <kupfer>
  857.  
  858. sage% ls -ldg jamin
  859. drwxrwxr-x  3 jamin    oldstaff     4608 Feb 14 00:03 jamin/
  860. sage% ls -lga jamin
  861. total 0
  862. sage%
  863.  
  864.  
  865. Log-Number: 32158
  866. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  867. Date: Wed, 26 Feb 1992 17:50:19 PST
  868. Subject: Re: /user1/jamin is messed up
  869.  
  870.  
  871. Sorry this didn't make it to bugs earlier.  Jamin's home directory got
  872. overwritten with what looks to be part of John O's mail.  I didn't dare
  873. fiddle with it for fear of losing John's mail box for the umpteenth time.
  874. The overwritting is undoubtedly due to the bug that causes those
  875. "read from clean segment" messages.  Eventually the segment gets reused
  876. even though it isn't clean.  I assume that the directory was in one
  877. of these segments, which was subsequently used to store one of John's
  878. files. We need to fix this bug.  Perhaps we could put in a short-term
  879. fix that would mark the supposedly clean segment as actually being dirty?
  880. We also need a program ala fscheck that will fix up an lfs that has
  881. gotten out of wack.  
  882.  
  883. John
  884.  
  885.  
  886. Log-Number: 32178
  887. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  888. Date: Tue, 3 Mar 1992 10:12:15 PST
  889. Subject: more lfs "read from clean segment" problems
  890.  
  891.  
  892. Lust died due to a read from clean segment. Undoubtedly whatever it
  893. was trying to read will be overwritten when the segment is reused. 
  894. I believe that the file system was /sprite/src.  Be on the lookout
  895. for trashed files and/or directories.
  896.  
  897. John
  898.  
  899.  
  900. Log-Number: 32048
  901. Date: Tue, 28 Jan 92 13:14:55 -0800
  902. From: dlong@cse.ucsc.edu
  903. Subject: more on LFS panic
  904.  
  905. I'm using the 1.109 kernel now, and I'm getting a different panic message.
  906. It's a "bad descriptor magic number" on my /sprite partition.  Accesses
  907. to files under certain directories, namely /sprite/spool, seem to trigger
  908. the panic.
  909.  
  910. You guys have it setup so that you can run kgdb on allspice from a
  911. non-sprite machine, right?  How hard is that to setup?  That would
  912. really help a lot.
  913.  
  914. dl
  915.  
  916.  
  917. Log-Number: 32050
  918. Subject: "man -k" is case sensitive
  919. Date: Tue, 28 Jan 92 15:25:46 PST
  920. From: Mike Kupfer <kupfer>
  921.  
  922. It would be nice if "man -k" ignored case, so that "man -k postscript"
  923. would match entries like
  924.  
  925.   f2ps (x)                - Fig to Postscript translator
  926.   psnup (local)           - Insert N-up code into Postscript files
  927.  
  928. mike
  929.  
  930.  
  931. Log-Number: 32052
  932. From: Fred Douglis <douglis@MITL.COM>
  933. Subject: getting X running
  934. Date: Wed, 29 Jan 92 17:17:19 -0500
  935.  
  936. any idea why i'd get "/dev/mouse: no such device" when I try to access
  937. it on sprite.mitl.com?   Works fine on ucb sprite.  I tried recreating
  938. /dev/mouse.ds3100 from scratch using fsmakedev, but that made no
  939. difference.  Accessing /dev/mouse.ds3100 directly also made no
  940. difference.  It's as though the kernel I'm running (JHH.2362) doesn't
  941. recognize the mouse (12,1) as a device, which is hard to believe.
  942.  
  943. Fred
  944.  
  945.  
  946. Log-Number: 32053
  947. Subject: mysterious pmake failures not exterminated
  948. Date: Wed, 29 Jan 92 23:11:24 PST
  949. From: Mike Kupfer <kupfer>
  950.  
  951. I'm still seeing occasional inexplicable pmake failures on
  952. DECstations.  The job chugs along like normal and then for no apparent
  953. reason a compilation dies with no message other than "Error code 16".
  954.   
  955.   --- ds3100.md/vmFsCache.o ---
  956.   rm -f ds3100.md/vmFsCache.o
  957.   Rmt_Done(host=57, priority=1) called.
  958.   Process 70926 exited.
  959.   *** Error code 16
  960.   --- ds3100.md/vmMsgQueue.o ---
  961.   
  962. Host 57 is clove.  "rup clove" shows
  963.  
  964.         HOST   TYPE     STATUS  UP/DOWN   OFFICE     LOAD    IDLE      KERNEL
  965.        clove* ds5000     avail  6+09:09  E 508-5     0.00  0+01:56      1.109
  966.  
  967. "ls -l" of other .o's shows that the failure happened around an hour
  968. ago.  So (a) it doesn't appear related to rebooting clove; (b) it
  969. doesn't appear to be related to eviction; (c) it doesn't appear to be
  970. a problem with non-standard kernels--both piracy (the home machine)
  971. and clove are running 1.109.
  972.  
  973. I'll try to see if there is anything interesting in clove's syslog...
  974.  
  975. mike
  976.  
  977.  
  978. Log-Number: 32054
  979. Subject: Re: mysterious pmake failures not exterminated 
  980. Date: Thu, 30 Jan 92 13:10:11 PST
  981. From: Mike Kupfer <kupfer>
  982.  
  983. There are a couple related messages in the Sprite log.  One, there
  984. were some similar problems with jobs mysteriously dying with error
  985. code 1.  This problem was apparently tracked down and fixed.  Two,
  986. there were some problems with the mysterious error code 16 in January
  987. and October 1990, but nobody ever gave a complete explanation for the
  988. problem, and there's no indication it was ever fixed.
  989.  
  990. I asked Ann to send me information from clove's syslog; her reply is
  991. below.  Hypothesis #1 is that the problem is related to doing
  992. recovery with a file server.  I checked piracy's syslog, and it, too,
  993. had gone through recovery with raid1 during the time in question,
  994. though as with clove, there's no good indication of what time this all
  995. happened.  Hypothesis #2 is that the remote machine for some reason
  996. thinks that the process on the home machine had died, even if it
  997. hasn't.  Unfortunately, the error message in ProcRemoteWait doesn't
  998. give the peer process ID, so this is hard to confirm.
  999.  
  1000. mike
  1001. --
  1002. Date: Thu, 30 Jan 92 11:38:52 PST
  1003. >From: alc (Ann L. Chervenak)
  1004. Message-Id: <9201301938.AA211257@sprite.Berkeley.EDU>
  1005. To: kupfer
  1006. Subject: Re: could you check clove's syslog?
  1007.  
  1008. Here is what was in the syslog windo after 19:50 last night and 
  1009. before 03:58 this morning:
  1010.  
  1011. ProcRemoteWait killing process e3934: home node's copy died.
  1012. open of "/r4" waiting for recovery
  1013. Fsprefix_HandleClose deleting "/r4"
  1014. Broadcasting for server of "/r4"
  1015. Importing "/r4" from raid1
  1016. open of "/r3/jclee/traces/tracelist.do.es.na.to.eq.ma.sp.xl" waiting for recovery
  1017. Fsprefix_HandleClose deleting "/r3"
  1018. Broadcasting for server of "/r3"
  1019. Importing "/r3" from raid1
  1020. LE ethernet: Too many collisions.
  1021. LE ethernet: Too many collisions.
  1022.  
  1023.  
  1024. Log-Number: 32111
  1025. Subject: more on pmake and "Error Code 16"
  1026. Date: Wed, 12 Feb 92 19:28:37 PST
  1027. From: Mike Kupfer <kupfer>
  1028.  
  1029. I ran into our friend the mysterious Error Code 16 again last night
  1030. and this afternoon, so I've made up a private kernel that has
  1031. additional printf's to track down where the error is coming from.  As
  1032. near as I can tell, it's because ProcRemoteWait thinks that the peer
  1033. process on the home node has disappeared, but I don't know why it
  1034. thinks that.
  1035.  
  1036. Unfortunately, this kernel will have to be fairly widely used for the
  1037. printf's to do much good.  Should I just check in the changes and wait
  1038. until we put out a new kernel?
  1039.  
  1040. mike
  1041.  
  1042.  
  1043. Log-Number: 32058
  1044. Subject: stuck timer queue eventually killed Allspice
  1045. Date: Fri, 31 Jan 92 18:27:34 PST
  1046. From: Mike Kupfer <kupfer>
  1047.  
  1048. Allspice got a stuck timer queue.  I dropped it into the monitor and
  1049. continued it.  It started to go through recovery and then stopped
  1050. stone dead (for no apparent reason).  I reset it and rebooted.
  1051.  
  1052. mike
  1053.  
  1054.  
  1055. Log-Number: 32065
  1056. Date: Sun, 2 Feb 92 17:55:24 PST
  1057. From: mani (Mani Varadarajan)
  1058. Subject: more on cory sprite failure (king)
  1059.  
  1060.  
  1061. as i reported before, rpcs to king hang soon after
  1062. allspice reboots. the last message in king's syslog
  1063. is "migd: write to global daemon failed". i have to
  1064. reboot king, but this doesn't fix the problem on
  1065. the client aix. it also needs to be rebooted.
  1066.  
  1067. mani
  1068.  
  1069.  
  1070. Log-Number: 32126
  1071. Date: Sun, 16 Feb 92 21:59:03 PST
  1072. From: mani@zabriskie.Berkeley.EDU (Mani Varadarajan)
  1073. Subject: aix hangs due to reference to /r3
  1074.  
  1075. i did an ``ls -ld'' in /users locally (cory sprite), and aix hung, 
  1076. with the syslog message ``Contacting server 77 for "/r3" prefix'',
  1077. since some of the old accounts still are symbolically linked to /r3.
  1078.  
  1079. this never times out.  this also used to happen whenever /scratch1
  1080. (a nonexistent disk) was referenced, but jim took out all references
  1081. to that when he updated the sprite here.  now that raid1 is no longer
  1082. in service, i guess these references also should removed, in lieu
  1083. of a more lasting solution. is there a quick fix for this?
  1084.  
  1085. mani
  1086.  
  1087.  
  1088. Log-Number: 32061
  1089. Date: Sat, 1 Feb 92 15:11:41 PST
  1090. From: shirriff (Ken Shirriff)
  1091. Subject: Allspice name server problem
  1092.  
  1093. Allspice has some weird name server problem after being rebooted.  Anything
  1094. that uses gethostbyname ends up hanging and waiting for the name server
  1095. to respond.
  1096. There was some problem before the reboot, too, because I couldn't ping
  1097. agate or melvyl from sprite, but they were accessible from other machines.
  1098.  
  1099. Ken
  1100.  
  1101.  
  1102. Log-Number: 32063
  1103. Date: Sat, 1 Feb 92 16:31:57 PST
  1104. From: shirriff (Ken Shirriff)
  1105. Subject: More about name server problems
  1106.  
  1107. I've looked into the problems some more.  On a normal sprite machine, the
  1108. name server works, but pings don't work.  For instance, if I do
  1109. "ping agate", it resolves to 128.?.?.?, but the ping wedges in the
  1110. recvfrom.  However, if I restart the ipServer, the name server fails.
  1111. Then a "ping agate" never even gets resolved to 128.?.?.?.  Looking
  1112. at gethostbyname, the problem is all the name server requests time out.
  1113. These are the same requests that worked before I restarted the ipServer.
  1114. So I don't know what's going on.
  1115.  
  1116. Ken
  1117.  
  1118.  
  1119. Log-Number: 32068
  1120. Date: Mon, 3 Feb 92 11:42:15 PST
  1121. From: pmchen (Peter M. Chen)
  1122. Subject: arson hanging pmake
  1123.  
  1124. Arson was hanging a pmake of mine, so I disabled migration on arson
  1125. (migcmd -I none).
  1126.  
  1127. Here is what was going on on arson at the time (don't know why it was listed
  1128. as available for migration with such a high CPU load).
  1129.  
  1130. As far as I could tell, it wasn't just slow (I waited for a minute or two).
  1131.  
  1132. Pete
  1133.  
  1134. arson% top
  1135. USER     PID   %CPU %MEM  SIZE   RSS STATE   TIME PR COMMAND
  1136. jclee    43c45 91.1  0.8   524   248 READY  19:46  < csim -s0 -p -i1k -d1k ...
  1137. jclee     3c4a 83.5  0.7   520   244 READY  19:57  < csim -s0 -p -i1k -d1k ...
  1138. pmchen   33c52  7.2  2.5   976   820 READY   0:01    ccom -EL -Xg2 -O1 ...
  1139. pmchen   23c50  2.0  0.8   280   276 READY   0:01    -csh 
  1140. root     13c4d  1.2  0.5   176   168 RWAIT   0:00    rlogind 
  1141. root     13c1b  1.0  1.6   588   540 RWAIT   2:07    /sprite/daemons/ipServer 
  1142. pmchen   23c5e  0.3  0.5   280   160 READY   0:00    -csh 
  1143. pmchen   23c5d  0.3  0.5   244   164 RUN     0:00    ps -au 
  1144. pmchen   13c5c  0.2  0.4   124   116 RWAIT   0:01    cc -c -g -DSPRITE -o ...
  1145.  
  1146.  
  1147. Log-Number: 32069
  1148. From: Fred Douglis <douglis@MITL.COM>
  1149. Subject: core leak?
  1150. Date: Tue, 04 Feb 92 10:12:24 -0500
  1151.  
  1152. My sprite machine crashed overnight with an out-of-memory error.
  1153. Nothing interesting was going on, or should have been, and it had been
  1154. up for only a half a day.  There was a message about cleaning before
  1155. the panic, but no way of knowing how much time passed.  Are there
  1156. known core leaks (relating to segment cleaning, for example)?
  1157.  
  1158. Fred
  1159.  
  1160.  
  1161. Log-Number: 32070
  1162. Date: Tue, 4 Feb 92 12:26:31 PST
  1163. From: bmiller (Bob Miller)
  1164. Subject: printer problem
  1165.  
  1166.  
  1167. There's been an overall problem with some new printer software, but can
  1168. someone check to see if it's not Sprite hanging up lw533?  Here's the
  1169. message I'm getting...
  1170.  
  1171. subversion.Berkeley.EDU: waiting for queue to be enabled on shallot
  1172.  
  1173.  
  1174.     Bob
  1175.  
  1176.  
  1177. Log-Number: 32071
  1178. Date: Tue, 4 Feb 92 16:39:28 PST
  1179. From: bmiller (Bob Miller)
  1180. Subject: more on printer problem...
  1181.  
  1182.  
  1183. print jobs can be sent from shallot (a non-Sprite machine)
  1184. and they print normally.  I cannot
  1185. print from subversion and Prof. Culler tried to send a print job
  1186. from cardamom.  Both jobs are sitting in the queue.  Lpq on shallot shows
  1187. no entries.
  1188.  
  1189. [5-Mar-1992 (from the Sprite meeting): the fix here is to remove the
  1190. lock file in the spool directory. -mdk]
  1191.  
  1192.  
  1193. Log-Number: 32074
  1194. From: johnw (John Wawrzynek)
  1195. Subject: xserver problem
  1196. Date: Wed, 05 Feb 92 15:13:34 PST
  1197.  
  1198. It seems that no X client can open a window on gluttony:
  1199.  
  1200. Xlib:  connection to "gluttony:0.0" refused by server
  1201. Xlib:  Client is not authorized to connect to Server
  1202. Error: Can't open display: gluttony:0
  1203.  
  1204. This is after typing "xhost +" at the console:
  1205.  
  1206. all hosts being allowed (access control disabled).
  1207. /ultrix/cmds.ds3100/xhost:  must be on local machine to enable or disable access
  1208.  control.
  1209.  
  1210. Thanks.
  1211.  
  1212.  
  1213.  
  1214. Log-Number: 32078
  1215. Date: Wed, 5 Feb 92 21:51:47 PST
  1216. From: shirriff (Ken Shirriff)
  1217. Subject: out of control telnet
  1218.  
  1219. I found the following telnet out of control on allspice:
  1220. ddgarcia 70e50 74.6  0.1   168   104 READY2680:56    telnet clove 
  1221. I think telnet has done this before.  I took a stack trace, but I couldn't
  1222. figure out the problem:
  1223. #0  0x126c0 in ioctl (fd=-209904, request=469758588, buf=(char *) 0x0) (ioctl.c line 478)
  1224. #1  0xae70 in inet_addr (...) (...)
  1225. #2  0x85d4 in wontoption ()
  1226. #3  0x5f84 in netflush ()
  1227. #4  0xaf2c in fflush (...) (...)
  1228. #5  0x1bfff590 in ?? ()
  1229. #6  0x12a20 in ioctl (fd=294096, request=35, buf=(char *) 0xf60a142c <Address 0xf60a142c out of bounds>) (ioctl.c line 478)
  1230. #7  0x10800 in bind (...) (...)
  1231. #8  0xb29c in bcopy (...) (...)
  1232. #9  0x8b4c in telrcv ()
  1233. #10 0x121d8 in ioctl (fd=0, request=8192, buf=(char *) 0x0) (ioctl.c line 254)
  1234. #11 0xd0c8 in res_send (...) (...)
  1235. #12 0x4760 in ?? ()
  1236. #13 0x4e24 in tn ()
  1237.  
  1238. Ken
  1239.  
  1240.  
  1241. Log-Number: 32080
  1242. Date: Thu, 6 Feb 92 13:33:18 -0800
  1243. From: dlong@cats.UCSC.EDU (Dean R. E. Long)
  1244. Subject: Re: Security problem
  1245.  
  1246. tftp logging is broke, so if someone tries to grab /etc/passwd, you'll
  1247. never know.  The problem is tftpd changes its uid to "guest", so it
  1248. can no longer append to the log file.  The solution I use is to
  1249. open the log file while tftpd is running as root, and keep it open.
  1250.  
  1251. dl
  1252.  
  1253.  
  1254. Log-Number: 32081
  1255. Subject: potentially lost mail
  1256. Date: Thu, 06 Feb 92 13:51:52 PST
  1257. From: Mike Kupfer <kupfer>
  1258.  
  1259. I just now tried to resort my inbox and got told that I had a dozen
  1260. messages that consisted solely of ASCII nulls.  It's possible that any
  1261. mail you sent me while I was gone got nuked.  I suspect that this is
  1262. related to the fact that Piracy died while in the middle of reading
  1263. mail, so I tried again on arson (which is the machine I'm on now).  
  1264.  
  1265. So, if there's mail that you sent Sunday or later and you think I
  1266. should see it, please resend it (assuming you still have a copy).
  1267.  
  1268. thanks,
  1269. mike
  1270.  
  1271.  
  1272.  
  1273. Log-Number: 32082
  1274. Date: Thu, 6 Feb 92 13:59:58 PST
  1275. From: kupfer (Mike Kupfer)
  1276. Subject: setuid bit for ds3100 "at"
  1277.  
  1278. Does anyone know why /sprite/cmds.ds3100/at wasn't setuid?
  1279.  
  1280. mike
  1281.  
  1282.  
  1283. Log-Number: 32086
  1284. Date: Fri, 7 Feb 92 11:37:43 PST
  1285. From: shirriff (Ken Shirriff)
  1286. Subject: Allspice wedged
  1287.  
  1288. When I got in today, my machine was sort of wedged up, and X wouldn't bring
  1289. up windows properly.  Rup and la just hung.  I looked at allspice and it
  1290. seemed to be wedged up too.  I did a L1-i, which not surprisingly killed it,
  1291. so I rebooted.
  1292.  
  1293. Ken
  1294.  
  1295.  
  1296. Log-Number: 32096
  1297. Date: Mon, 10 Feb 92 15:43:28 PST
  1298. From: shirriff (Ken Shirriff)
  1299. Subject: ftp logging problem fixed
  1300.  
  1301. The ftp logging problem seemed to be a disk full problem of some sort.
  1302. df said:
  1303. Prefix               Server         KBytes       Used      Avail    % Used
  1304. /                    allspice       495968     420434      25937      94%
  1305. but when ftpd tried to write back the ftpdlog, it got disk full messages.
  1306. I freed up some space on / and now the logging seems to work.
  1307.  
  1308. Ken
  1309.  
  1310.  
  1311. Log-Number: 32118
  1312. Date: Thu, 13 Feb 92 23:35:14 PST
  1313. From: shirriff (Ken Shirriff)
  1314. Subject: Bogus out of disk space messages
  1315.  
  1316. Every 5 seconds, piracy prints:
  1317.  
  1318. 2/13/92 23:31:49 allspice (14) RmtFile "/sprite/admin/migd/global-log"
  1319. <10,9620> Write-back failed: out of disk space<40008>
  1320.  
  1321. I've cleared out megabytes of disk space:
  1322. <ks piracy 2:6> df /sprite/admin/migd/global-log
  1323. Prefix               Server         KBytes       Used      Avail    % Used
  1324. /                    allspice       495968     396125      50246      88%
  1325.  
  1326. and the file isn't very big:
  1327. <ks piracy 2:5> ls -l /sprite/admin/migd/global-log
  1328. -rw-rw-r--  1 kupfer     835181 Feb 13 22:28 /sprite/admin/migd/global-log
  1329.  
  1330. So why does piracy keep pestering me???
  1331.  
  1332. Ken
  1333.  
  1334.  
  1335. Log-Number: 32098
  1336. Date: Tue, 11 Feb 92 10:20:49 PST
  1337. From: culler (David Culler)
  1338. Subject: xdvi doesn't work on ds3100 if dvi has multiple pages
  1339.  
  1340. latex hw
  1341. This is Common TeX, Version 2.9 (no format preloaded)
  1342. (./hw.tex
  1343. LaTeX Version 2.09 - Released 27 October 1986
  1344. (/lib/tex/article.sty
  1345. Document Style `article'. Released 4 September 1986.
  1346. (/lib/tex/art11.sty)) (./cs267.sty) (./hw.aux) [1] [2] (./hw.aux)
  1347. Output written on hw.dvi (2 pages, 4856 bytes).
  1348. Transcript written on hw.log.
  1349. cardamom:handouts> xdvi hw &
  1350. [2] 4274d
  1351. cardamom:handouts> xdvi: DVI file corrupted
  1352.  
  1353. [2]    Exit 1               xdvi hw
  1354.  
  1355.  
  1356.  
  1357. Log-Number: 32108
  1358. Date: Wed, 12 Feb 92 16:44:40 PST
  1359. From: eklee (Edward K. Lee)
  1360. Subject: Re: xdvi/latex problems
  1361.  
  1362. I remade the tex formats taking care that it got all its input files from
  1363. /lib/tex but this did not fix the xdvi problem.
  1364.  
  1365. I tried the following combinations:
  1366. latex on sprite with sprite latex
  1367. latex on sprite with sww latex
  1368. latex on sunos with sww latex
  1369.  
  1370. In all cases, the resulting dvi file could be previewed with the sww xdvi but
  1371. not with the sprite xdvi.
  1372. Similar xdvi problem occur on sun4's.
  1373.  
  1374. Xdvi gets hung-up while opening the file /sprite/lib/fonts/pk/cmtt10.1642pxl in
  1375. the routine sleepx.
  1376.    0 sleepx(0x460f10, 0x7ddff3e0, 0x41a510, 0x100320e4, 0x45a40c) [0x460d28]
  1377.    1 open.open(0x0, 0x45ae90, 0x0, 0x0, 0x0) ["open.c":93, 0x4615c8]
  1378.    2 fopen.fopen(0x100163f4, 0x66a, 0x66a, 0x0, 0x0) ["fopen.c":64, 0x45a408]
  1379.    3 formatted_open(path = 0x30, font = 0x10035c68 = "cmtt10", pxl = 0x10016404
  1380. = "pxl", mag = 1642, name = 0x10046620, count = 2) ["pxl_open.c":448, 0x405730]
  1381.  
  1382. I think the problem may have to do with the tex fonts on sprite.
  1383. Anyways, the sww version of xdvi does work under sprite.
  1384.  
  1385. Ed
  1386.  
  1387.  
  1388. Log-Number: 32109
  1389. Subject: how frequent are LFS checkpoints?
  1390. Date: Wed, 12 Feb 92 17:31:14 PST
  1391. From: Mike Kupfer <kupfer>
  1392.  
  1393. When allspice was rebooted, I found that my freshly created
  1394. /sprite/src/kernel/kupfer/proc subtree had vanished.  I think I'd been
  1395. working in it for at least 5 minutes, so I was a bit surprised to see
  1396. the entire tree gone.
  1397.  
  1398. mike
  1399.  
  1400.  
  1401. Log-Number: 32121
  1402. Subject: Re: how frequent are LFS checkpoints? 
  1403. Date: Fri, 14 Feb 92 16:14:11 -0800
  1404. From: mendel@leland.Stanford.EDU
  1405.  
  1406.  
  1407. > When allspice was rebooted, I found that my freshly created
  1408. > /sprite/src/kernel/kupfer/proc subtree had vanished.  I think I'd been
  1409. > working in it for at least 5 minutes, so I was a bit surprised to see
  1410. > the entire tree gone.
  1411. > mike
  1412.  
  1413. The checkpoint interval on the sprite/src/kernel is set to 60 seconds.  
  1414. It is surprising that a 5 minute old directory disappeared.  It occurs
  1415. to me that the checkpoint stuff use the Proc_CallFunc mechanism so if the
  1416. call back timer stops so do the checkpoints. Did the machine die because
  1417. of the call back queue messup?
  1418.  
  1419.     Mendel
  1420.  
  1421.  
  1422. Log-Number: 32110
  1423. Date: Wed, 12 Feb 92 16:55:11 PST
  1424. From: shirriff@ginger.Berkeley.EDU (Ken Shirriff)
  1425. Subject: Allspice crash
  1426.  
  1427. Allspice crashed with "list pointers are invalid".
  1428. The core dump failed because I ran out of disk space.
  1429. The problem may have been due to me testing my prefix
  1430. changes a while ago.
  1431.  
  1432. Ken
  1433.  
  1434.  
  1435. Log-Number: 32123
  1436. Subject: forgery out of memory?
  1437. Date: Fri, 14 Feb 92 17:53:30 PST
  1438. From: Mike Kupfer <kupfer>
  1439.  
  1440. Forgery is complaining about being out of memory.  "vmstat -t 5" shows
  1441. something like
  1442.  
  1443.  AVAIL    FREE    USER   KMEM    KSTK     FS$   PF-NUM  PF-SWP   PF-FS   POUTS  
  1444.  32768     224   12804   5048    1704   10332  1653576    1876   20336    5037
  1445.  32768     208   12820   5048    1704   10332       33       0       1       0
  1446.  32768     208   12820   5048    1704   10332       24       0       0       0
  1447.  32768     208   12820   5048    1704   10332       24       0       0       0
  1448.  32768     208   12820   5048    1704   10332       55       0       0       0
  1449.  32768     208   12820   5048    1704   10332       25       0       0       0
  1450.  32768     208   12820   5048    1704   10332       25       0       0       0
  1451.  32768     208   12820   5048    1704   10332       24       0       0       0
  1452.  
  1453. About half the user pages are dirty.  I don't know why they aren't
  1454. getting written back, and I don't know why the FS cache is staying the
  1455. same size.  I walked down to 508-5, but there wasn't anything
  1456. elucidating in the syslog.  I tried "vmcmd -a 1 -A 0", and that didn't
  1457. help.  I tried "fscmd -f", and that didn't seem to do anything,
  1458. either.  (There is a foreign csim running, but it seems to be
  1459. occupying very little memory.  Most of the memory is taken by the X
  1460. server and various instances of emacs, mx, and tx.)
  1461.  
  1462. A related gripe: it appears that it is easy to set VM and FS
  1463. parameters, but it's not so easy to find out what their current values
  1464. are, especially if you aren't sitting at the console.
  1465.  
  1466. mike
  1467.  
  1468. [5-Mar-1992: the problem was that forgery was out of VM segments, not
  1469. out of memory. -mdk]
  1470.  
  1471.  
  1472. Log-Number: 32125
  1473. Date: Sat, 15 Feb 92 21:32:46 PST
  1474. From: mani (Mani Varadarajan)
  1475. Subject: finger not reporting properly
  1476.  
  1477.  
  1478. i fingered myself while logged into cardamom, and it doesnt
  1479. show me as being logged into a sprite machine.
  1480.  
  1481. i'm not sure if this is exactly relevant to this problem,
  1482. but migd wasnt running on cardamom. shouldn't it get automatically
  1483. restarted?
  1484.  
  1485. mani
  1486.  
  1487.  
  1488. Log-Number: 32143
  1489. Subject: Re: finger not reporting properly 
  1490. Date: Fri, 21 Feb 92 19:28:10 PST
  1491. From: Mike Kupfer <kupfer>
  1492.  
  1493. Oops, I got confused about what you were saying was broken and ended
  1494. testing the wrong thing.
  1495.  
  1496. Anyway, the answer is that the problem was because migd on cardamom
  1497. was dead.
  1498.  
  1499. We don't currently have anything set up to restart dead migd's.  It's
  1500. normally not a problem.
  1501.  
  1502. mike
  1503.  
  1504.  
  1505. Log-Number: 32128
  1506. Date: Tue, 18 Feb 92 13:16:59 PST
  1507. From: pmchen (Peter M. Chen)
  1508. Subject: file system deadlock
  1509.  
  1510. I'm running the PMCHEN kernel on mustard (ds5000).  This is the same as the
  1511. 1.109 kernel, but with the raid device driver added in.  I mounted 3 disks
  1512. running a raid 0.
  1513.  
  1514. My program issues multiple I/O's, using multiple (3 in this case) processes
  1515. to a set of files.  All files are accessed by all processes.
  1516.  
  1517. I've gotten several deadlocks, where all processes hang in the WAIT state.
  1518. This is non-determinstic, of course, as with most deadlocks.  But it does
  1519. seem to happen about once a day if I pound on the system hard enough.
  1520.  
  1521. Are there any known deadlock problems?  I haven't tried this with a non-raid
  1522. file system, but I will in a bit.
  1523.  
  1524. I noticed that the processes tend to hang when the working set is much larger
  1525. than the file cache.  So it might have something to do with locks at the
  1526. device level, not at the file cache level.  Or, it may be just that the file
  1527. cache lock is held longer, since it's going to disk frequently.
  1528.  
  1529. Pete
  1530.  
  1531. [5-Mar-1992: this looks like the problems we had last year with raid1
  1532. apparently losing I/O responses and hanging. -mdk]
  1533.  
  1534.  
  1535. Log-Number: 32130
  1536. Date: Wed, 19 Feb 1992 02:11:05 -0800
  1537. From: "Dean R. E. Long" <dlong@cse.ucsc.edu>
  1538. Subject: sendmail fix
  1539.  
  1540. Besides the accept() system call in getrequests(), the socket()
  1541. system call [actually Fs_Open on /hosts/.../netTCP] can also be
  1542. interrupted by a signal, causing sendmail to exit.  This can happen
  1543. when you invoke sendmail with the -q option on the server.
  1544. The child process that runs through the queue can exit during
  1545. socket() in getrequests() if the queue is empty, causing a
  1546. SIGCHLD.  Wrapping the socket() call in a do {} while (fd==-1 && errno==INTR)
  1547. fixes the problem.  Also, rebuilding all the object files might
  1548. be a good idea.  While debugging the SIGCHLD problem, sendmail got
  1549. stuck in the wait() call of reapchild().  I rebuilt conf.o, which
  1550. seemed to fix it.  Do to an #ifdef, reapchild() used wait3() after
  1551. the recompile.  Was wait3() recently added to the libc?
  1552.  
  1553. dl
  1554.  
  1555.  
  1556. Log-Number: 32145
  1557. Subject: Re: sendmail fix 
  1558. Date: Sun, 23 Feb 92 17:11:57 PST
  1559. From: Mike Kupfer <kupfer>
  1560.  
  1561. > Wrapping the socket() call in a do {} while (fd==-1 && errno==INTR)
  1562. > fixes the problem.
  1563.  
  1564. It would probably be better to fix socket() (in all its assorted
  1565. incarnations, including the binary compatibility routine(s)) so that
  1566. it retries if there was a signal.  I don't think vanilla UNIX socket()
  1567. can get interrupted by a signal, so most UNIX programs won't retry.
  1568.  
  1569. Dunno why sendmail used wait() before but uses wait3() now.
  1570.  
  1571. mike
  1572.  
  1573.  
  1574. Log-Number: 32146
  1575. From: Fred Douglis <douglis@MITL.COM>
  1576. Subject: Re: sprite arp, mop problems continue 
  1577. Date: Sun, 23 Feb 92 20:15:39 -0500
  1578.  
  1579. >>>>> On Fri, 21 Feb 92 15:44:19 PST, shirriff@sprite.Berkeley.EDU
  1580. >>>>> (Ken Shirriff) said:
  1581.  
  1582.     Ken> Maybe packets are getting lost or delayed in the network?
  1583.     Ken> You could try using tcpdump to watch the packets going back
  1584.     Ken> and forth to see what's happening or you could add some
  1585.     Ken> debugging statements to mopd.
  1586.  
  1587.  
  1588. Aargh!  It seems that timeouts were accounting for the problems with
  1589. both mopd and reverse arp.  I had already tried tcpdump but it wasn't
  1590. clear what might be happening.  However, I did look more closely at
  1591. the code for mopd, and found that I could just invoke it by hand with
  1592. "-d -d" to enable all its debugging.  Seems it was getting a timeout,
  1593. which it did not recover from whatsoever.  So I just increased the
  1594. "alarm(2)" to "alarm(5)" and voila, I could download a boot kernel the
  1595. next time I tried and every time since.  
  1596.  
  1597. I next tried to figure out what was going on with reverse arp.  Seems
  1598. that the code that matches an ethernet address to a sprite ID does one
  1599. break too few, which means that the for loop goes all the way up to
  1600. netNumHosts even after a match.  Maybe my timers are messed up, or
  1601. maybe my ds5000s run slowly, or something, but it seems that by the
  1602. time the server was replying the client had already given up.  Perhaps
  1603. it was dumb luck that once in a while it would not time out yet, or
  1604. perhaps request #N would get a response from request #N-1.  Who knows.
  1605. However, by changing the constant in the arp code so it times out
  1606. after 900ms instead of 500 ms (just replacing one arbitrary number
  1607. with another :-), I was able to boot my sprite client for the first
  1608. time in a couple of days.  
  1609.  
  1610. My guess at this point is that Ken hit the nail on the head, and our
  1611. network is somehow more loaded than yours is.  Those timeout constants
  1612. are certainly black magic and not very forgiving!  And the idea that
  1613. the kernel does 4 reverse arps, gets 4 timeouts, and just keeps going
  1614. without its spriteID set is just plain silly.  Rather than waiting
  1615. forever for the server of "/" it should keep trying to get its
  1616. spriteID before going on.
  1617.  
  1618. Fred
  1619.  
  1620.  
  1621. Log-Number: 32148
  1622. Date: Mon, 24 Feb 92 21:18:51 PST
  1623. From: shirriff@ginger.Berkeley.EDU (Ken Shirriff)
  1624.  
  1625. ~s Allspice crashed: LFS problem
  1626. Allspice crashed running the MB.650 kernel.  A core dump is in vmcore.mary.
  1627. The symptoms were a whole bunch of
  1628. Lfs_StartWriteBack called, fileFschecked is 0   followed by
  1629. Lfs_SetSegUsage: Warning activeBytes for segment 1119 is -3045
  1630. Fatal Error: LfsSetSegUsage called for a clean segment
  1631.  
  1632. A couple minutes before the crash, I restarted the IP server on allspice
  1633. because the ftp daemon wasn't working, but I don't know if this is related.
  1634.  
  1635. Ken
  1636.  
  1637.  
  1638. Log-Number: 32150
  1639. From: mgbaker (Mary Gray Baker)
  1640. Subject: xwaisq problem/question
  1641. Date: Mon, 24 Feb 92 22:53:04 PST
  1642.  
  1643. Xwaisq is very useful, except that I'm having trouble figuring out how
  1644. to find the message numbers for the sprite log.  They don't seem to
  1645. be anywhere on the display.
  1646.  
  1647. Mary
  1648.  
  1649.  
  1650. Log-Number: 32151
  1651. Date: Mon, 24 Feb 92 23:00:11 PST
  1652. From: shirriff (Ken Shirriff)
  1653. Subject: Re: xwaisq problem/question
  1654.  
  1655. I think the reason the numbers aren't visible is due to the structure of
  1656. wais.  Basically you are a client, making requests to the wais server.  The
  1657. message numbers are the filenames, which are normally only relevant to the
  1658. server (since you can't access the server's files directlry), so they don't
  1659. get passed along.
  1660.  
  1661. I guess to fix this would require changing the wais server so it sticks the
  1662. Sprite message ID into the returned document somewhere.
  1663.  
  1664. Ken
  1665.  
  1666.  
  1667. Log-Number: 32156
  1668. Subject: Re: writing a large directory hierarchy under LFS 
  1669. Date: Tue, 25 Feb 92 16:06:17 -0800
  1670. From: mendel@Niihau.Stanford.EDU.Stanford.EDU
  1671.  
  1672. > I've had trouble with sprite crashing when I try to run "update" to
  1673. > copy lots of files.  The problems manifest themselves in various ways:
  1674. > locked cache blocks that wedge the system, garbaged data structures,
  1675. > etc.  
  1676. > If you took a large LFS disk /a and updated it to an empty LFS disk
  1677. > /b, via "update /a/. /b/a", would it finish?
  1678. > This has been true with a vanilla kernel (e.g.  JHH.2362, 1/9/92) so
  1679. > it's presumably nothing I'm doing.  But maybe I'm missing something.
  1680. > If it's a "known problem" and the answer is simply "never write too
  1681. > many LFS files at a time", then I'll shrug it off.  If it's something
  1682. > unexpected, then I guess someone should file this away, um, I mean fix
  1683. > it.  (semi :-)
  1684.  
  1685.  
  1686. How much memory do you have on the machine? It's possible that you
  1687. are running into problem that don't happen on the Berkeley Sprite
  1688. file servers because of the large amount of memory.
  1689.  
  1690. > One more LFS question: if I run chmod, then sync, then this update,
  1691. > and I crash, the chmod doesn't take effect.  Does sync not force a
  1692. > checkpoint, and if not, is there a user-level command to force one?
  1693. > Fred
  1694.  
  1695. Yes, sync causes an LFS checkpoint to occur.
  1696.  
  1697.     Mendel
  1698.  
  1699.  
  1700. Log-Number: 32160
  1701. From: Fred Douglis <douglis@MITL.COM>
  1702. Subject: rarp problem located: Net_AddrToId bug
  1703. Date: Thu, 27 Feb 92 15:25:40 -0500
  1704.  
  1705. I noticed that even though the mopd problem I reported earlier seemed
  1706. to have something to do with timeouts and dropped packets, the fact
  1707. that a diskless client couldn't boot was not explained.  I had stopped
  1708. worrying about it, since I had a local disk and could set the spriteID
  1709. from the disk header, but then I ran into a "network sniffer" salesman
  1710. and tried to use that to explain the strange goings-on.  It didn't,
  1711. but on further inspection, I figured it out: Net_AddrToId not only was
  1712. missing a break, as I said before, but it was also doing a compare on
  1713. the entire 8-byte Net_Address structure rather than just the 6 bytes
  1714. in the ethernet address.  Perhaps in your environment those other two
  1715. bytes always match, but that was not the case here.  Changing the test
  1716. to look at the network type appears to fix the problem.
  1717.  
  1718. Fred
  1719.  
  1720.  
  1721. Log-Number: 32162
  1722. Subject: incorrect default handling for some UNIX signals
  1723. Date: Thu, 27 Feb 92 14:48:04 PST
  1724. From: Mike Kupfer <kupfer>
  1725.  
  1726. By default, UNIX signals that don't map to regular Sprite signals are
  1727. ignored.  However, except for SIGWINCH, the UNIX default for all of
  1728. those signals should be the termination of the process.  In the case
  1729. of SIGUSR1, this incorrect behavior breaks "find".  (If you say
  1730.  
  1731.     find . -exec NoSuchProg {} \;
  1732.  
  1733. then "find" should stop the first time it tries to invoke the
  1734. non-existent program.  Under the current setup, it just plows along,
  1735. generating a slew of error messages.)
  1736.  
  1737. The signals that are broken by this bug are 
  1738.  
  1739.   SIGIOT SIGEMT SIGSYS SIGXCPU SIGXFSZ SIGVTALRM SIGPROF SIGUSR1
  1740.   SIGUSR2  
  1741.  
  1742. mike
  1743.  
  1744. P.S. There are two parts to this bug.  The first part is in Sig_Init,
  1745. which defaults the action for non-zero signal numbers to be
  1746. SIG_IGNORE_ACTION.  The second part is in Sig_SendProc, which ignores
  1747. signal 0 (SIGSYS, SIGXCPU, SIGXFSZ, SIGVTALRM, and SIGPROF).
  1748.  
  1749.  
  1750. Log-Number: 32164
  1751. Subject: lust crash: /pcs hardware error
  1752. Date: Thu, 27 Feb 92 21:20:23 PST
  1753. From: Mike Kupfer <kupfer>
  1754.  
  1755. Lust crashed with
  1756.  
  1757.   Warning: SCSI Disk SCSI#0 Target 4 LUN 0 error: media error -
  1758.     info bytes 0x0 0x0 0xd6 0xef
  1759.   Fatal Error: LfsError: on /pcs status 0x70008, Can't write segment
  1760.     to log
  1761.  
  1762. I checked the cabling on the disk and rebooted.
  1763.  
  1764. mike
  1765.  
  1766.  
  1767. Log-Number: 32168
  1768. Date: Fri, 28 Feb 92 15:29:48 PST
  1769. From: shirriff@ginger.Berkeley.EDU (Ken Shirriff)
  1770. Subject: Allspice media error crash
  1771.  
  1772. Allspice crashed after getting a media error on /sprite/src/kernel.
  1773.  
  1774. I put a core dump in vmcore.media.
  1775.  
  1776. The console said:
  1777. SCSI Disk #3 target 2 LUN 0
  1778. media error 0x0 0x2b 0x3d 0x27
  1779. LfsError on /sprite/src/kernel: Can't write segment to log.
  1780.  
  1781. Ken
  1782.  
  1783.  
  1784. Log-Number: 32169
  1785. Date: Fri, 28 Feb 92 19:26:40 PST
  1786. From: mottsmth (Jim Mott-Smith)
  1787. Subject: 'Permission denied' message from update.
  1788.  
  1789.  
  1790. Often, when I update my files to ginger, update gives
  1791. me a 'permission denied' message for no apparent reason.
  1792.  
  1793. In this example, the first two attempts failed but the
  1794. third one's a charm...
  1795.  
  1796. > sabotage:~mottsmth/j/jaq> update indx.c /home/ginger/users/mottsmth/j/jaq/indx.c
  1797. > Updating: /home/ginger/users/mottsmth/j/jaq/indx.c
  1798. > Couldn't rename "/home/ginger/users/mottsmth/j/jaq/indx.c" to "/home/ginger/users/mottsmth/j/jaq/indx.cXXX": permission denied.
  1799. > sabotage:~mottsmth/j/jaq> update indx.c /home/ginger/users/mottsmth/j/jaq/indx.c
  1800. > Updating: /home/ginger/users/mottsmth/j/jaq/indx.c
  1801. > Couldn't rename "/home/ginger/users/mottsmth/j/jaq/indx.c" to "/home/ginger/users/mottsmth/j/jaq/indx.cXXX": permission denied.
  1802. > sabotage:~mottsmth/j/jaq> !!
  1803. > update indx.c /home/ginger/users/mottsmth/j/jaq/indx.c
  1804. > Updating: /home/ginger/users/mottsmth/j/jaq/indx.c
  1805.  
  1806. Anybody know what's going on?
  1807.  
  1808. -- Jim M-S
  1809.  
  1810.  
  1811. Log-Number: 32170
  1812. Date: Sat, 29 Feb 92 18:19:24 PST
  1813. From: shirriff (Ken Shirriff)
  1814. Subject: gcc compiler chokes on INT_MIN
  1815.  
  1816. If you assign INT_MIN to a double, it comes out as INT_MAX.
  1817. This is very bad if a program initializes a value to INT_MIN and then
  1818. loops over values to find the maximum.
  1819.  
  1820. e.g.
  1821. #include <limits.h>
  1822. main()
  1823. {
  1824.     double x;
  1825.     int y;
  1826.     x = INT_MIN;
  1827.     if (x>0) {
  1828.         printf("%f\n",x);
  1829.     }
  1830. }
  1831. Output on a sun4 is:
  1832. 2147483647.999985
  1833.  
  1834. Ken
  1835.  
  1836.  
  1837. Log-Number: 32172
  1838. From: mgbaker (Mary Gray Baker)
  1839. Subject: Server failures, reincarnation, alpha particles and leap year
  1840. Date: Sun, 01 Mar 92 00:13:59 PST
  1841.  
  1842. Okay.  I've tried to respond in a sensible sort of way to people who
  1843. insist that things like leap day will cause massive earthquakes, stock
  1844. market failures, or the disappearance of entire oceans.  The sensible
  1845. response is "nonsense."  But here's what happened today, Feb. 29th.
  1846.  
  1847. We have had network failures, disk failures, console display failures,
  1848. and group simultaneous memory errors.  Not to mention what happened to Jim
  1849. this morning, but that's another story.
  1850.  
  1851. Lust crashed this evening with a media error on /pcs.  It got a short read
  1852. error in LfsReadBytes. I opted for bringing up the machine without /pcs mounted.
  1853. I know this causes recovery to fail, but I couldn't see how badly trashed
  1854. things were, because lust's console chose to fail at that point.  I got to
  1855. see the LfsReadBytes message but not much else before the console went into
  1856. this diagonal ziggly mode.  I got the console back after turning it off
  1857. for a bit and brought up the machine without /pcs.  This way whatever data
  1858. is there in the last good checkpoint won't be overwritten or cleaned or
  1859. something before we can deal with it.
  1860.  
  1861. Then I went over to allspice to figure out why it was spewing stuff out
  1862. on its console so fast that the machine had practically come to a halt.
  1863. It seemed to be the talkd process.  I couldn't do anything from allspice,
  1864. so I went back to lust's console to fix things remotely.
  1865.  
  1866. At that point, lust got an ECC error.  It said:
  1867.  
  1868. ECC read error during CPU access of address 0x191578
  1869. ECC error was in the low bank
  1870. single bit error
  1871. syndrome bits = 0x10
  1872. check bits = 0x1c00
  1873.  
  1874. What surprised me is that it chose that moment to time out with allspice.  So
  1875. I went back over to allspice, and low and behold, it had suffered a memory error
  1876. at the same time!  It got a random cache flush error.  Then it got a watchdog
  1877. reset.
  1878.  
  1879. So I brought up allspice.  Then I bumped into Mike Olsen, and today he
  1880. lost his disk with a large part of his Master's project on it, and he can't get
  1881. at any of the software he was using in Cory because the gateway kerplunked
  1882. itself.
  1883.  
  1884. Maybe that charming cellist on Telegraph Ave. who tried to convince me
  1885. that I should buy his special incense that wards off reincarnations of
  1886. unpleasant spirits actually knew what he was talking about.
  1887.  
  1888.  
  1889. Mary
  1890.  
  1891.  
  1892. Log-Number: 32175
  1893. Date: Mon, 2 Mar 92 11:19:02 PST
  1894. From: shirriff (Ken Shirriff)
  1895. Subject: SWW X11 doesn't start up
  1896.  
  1897. David Culler couldn't start up X this morning.  He would get a gray
  1898. background and then messages about waiting for the X server to respond.
  1899. He was running X out of the software warehouse.  I changed his path
  1900. to use /X11/R4/cmds instead of sww and then X worked for him.
  1901.  
  1902. Ken
  1903.  
  1904.  
  1905. Log-Number: 32181
  1906. Subject: Re: problems with mail queue 
  1907. Date: Tue, 03 Mar 92 15:21:33 PST
  1908. From: Mike Kupfer <kupfer>
  1909.  
  1910.  
  1911. Probably *the* most common problem with the Sprite mail queue is that
  1912. sendmail will lock something in the queue and then die, leaving the
  1913. lock file around.  (The "*" next to the mailq QID means that the
  1914. message is locked.)  A later "sendmail -q" does nothing because the
  1915. lock file is theoretically an indication that some other sendmail
  1916. process is working on that message.
  1917.  
  1918. You can
  1919.  
  1920. (1) wait for a nightly script to delete the lock file (this actually
  1921. takes a couple days)
  1922.  
  1923. (2) send mail to bugs, asking for someone to remove bogus lock files
  1924.  
  1925. (3) remove the bogus lock files yourself (but only if you're sure
  1926. there isn't currently a sendmail working on the message)
  1927.  
  1928. mike
  1929.  
  1930.  
  1931. Log-Number: 32186
  1932. Date: Wed, 4 Mar 92 08:10:06 PST
  1933. From: ouster (John Ousterhout)
  1934. Subject: Lust crash
  1935.  
  1936. Lust crashed this morning with a SCSI error on /tmp.  The message
  1937. was something like "unsupported class7 error 0xb".
  1938.  
  1939.                     -John-
  1940.  
  1941.  
  1942. Log-Number: 32189
  1943. Date: Wed, 4 Mar 92 08:38:14 PST
  1944. From: ouster (John Ousterhout)
  1945. Subject: Third lust crash
  1946.  
  1947. This time the message was:
  1948.  
  1949. Fscache_UpdateAttFromClient 75: "(no name)" <2,1009> short size 62684 not 67840
  1950.  
  1951. By the way, I've commented out the mount line for /tmp in lust's
  1952. bootcmds file;  this will need to be undone when /tmp is eventually
  1953. moved back to lust.
  1954.                     -John-
  1955.  
  1956.  
  1957. Log-Number: 32190
  1958. Subject: SWW epoch seg faults when asking for version
  1959. Date: Wed, 04 Mar 92 11:27:43 PST
  1960. From: Mike Kupfer <kupfer>
  1961.  
  1962. I can start up /usr/sww/bin/epoch on sage, but if I ask for its
  1963. version (ESC-x emacs-version <CR>), it segment faults.  It works fine
  1964. on shallot, so I assume it's a binary compatibility problem. 
  1965. Hopefully it's just a matter of not recognizing that it's a UNIX
  1966. binary, but that's only a guess.
  1967.  
  1968. mike
  1969.  
  1970.  
  1971. Log-Number: 32192
  1972. Date: Wed, 4 Mar 92 19:11:46 PST
  1973. From: kupfer@ginger.Berkeley.EDU (Mike Kupfer)
  1974. Subject: lust crash: unsupported class7 error 0xb
  1975.  
  1976. Lust died with what appears to be a hardware error on /user5.  There
  1977. were a bunch of error messages
  1978.  
  1979.   Warning: short async NFS write
  1980.  
  1981. which I assume are irrelevant (but I'm not sure).  In the middle of
  1982. one of these messages there was
  1983.  
  1984.   Warning: SCSI Disk SCSI#0 Target 6 LUN 0 error: unsupported class7 error 0xb
  1985.   Fatal Error: LfsError: on /user5 status 0x50003, Can't write segment to log.
  1986.  
  1987. When I tried to reboot lust, I got
  1988.  
  1989.   Bad segment summary magic in segment 1743
  1990.  
  1991. on /user5.
  1992.  
  1993. I am currently using the programs in ~mendel/lfs/src/cmds to try to
  1994. repair /user5.  It would be nice if these programs (esp. lfscheck,
  1995. lfsrebuild, and lfsrecov) were installed in /sprite/admin, had man
  1996. pages, etc.
  1997.  
  1998. mike
  1999.  
  2000.  
  2001. Log-Number: 32194
  2002. Subject: Re: lust crash: unsupported class7 error 0xb
  2003. Date: Wed, 04 Mar 92 20:52:45 PST
  2004. From: Mike Kupfer <kupfer>
  2005.  
  2006. If I'm reading the code and documentation right, this error is
  2007.  
  2008.   "aborted command".  Indicates that the target aborted the command. 
  2009.   The initiator may be able to recover by trying the command again.
  2010.  
  2011. mike
  2012.  
  2013.  
  2014. Log-Number: 32195
  2015. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  2016. Date: Wed, 4 Mar 1992 21:14:03 PST
  2017. Subject: Re: /pcs offline again
  2018.  
  2019. The lfs* commands in Mendels directory are of unknown reliability.
  2020. I'm not sure how well tested they are. If Mendel can confirm that
  2021. they are reasonably reliable then we should install them in 
  2022. /sprite/admin.  Note, however, that none of them are an lfs
  2023. equivalent of fscheck, i.e. it will repair problems in the
  2024. file system and move unreachable files to /lost+found.
  2025.  
  2026. John
  2027.  
  2028.  
  2029. Log-Number: 32197
  2030. Subject: lfsrebuild bugs 
  2031. Date: Wed, 04 Mar 92 22:28:46 PST
  2032. From: Mike Kupfer <kupfer>
  2033.  
  2034. (1) the help message gives the same explanation for both "-verbose"
  2035. and "-oldcp".  I assume that the explanation for "oldcp" should be
  2036. something like "use the old checkpoint".
  2037.  
  2038. (2) When lfsrebuild deletes a file, it doesn't do it cleanly.  Here
  2039. are a couple messages from when it fixed up /user5:
  2040.  
  2041.   File kupfer/cmds.sprited.ds3100/psh references non-allocated descriptor 47783. File Deleted.
  2042.   Entry psh (2) now has nameLength 3, recordLength 12, fileNumber 0.
  2043.   File kupfer/cmds.sprited.ds3100/ln references non-allocated descriptor 47769. File Deleted.
  2044.   Entry ln (5) now has nameLength 2, recordLength 12, fileNumber 0.
  2045.  
  2046. Unfortunately, the entry for the file is apparently left in the
  2047. directory.  This leads to things like
  2048.  
  2049.   sage% ls cmds.sprited.ds3100
  2050.   cmds.sprited.ds3100/psh not found
  2051.   cmds.sprited.ds3100/ln not found
  2052.   chmod*    kill*        mv*        rmdir*        tail*
  2053.   cp*        loop*        ps*        setjmp*        world*
  2054.   fault*    ls*        pwd*        suicide*
  2055.   find*        mkdir*        rm*        sync*
  2056.  
  2057. and
  2058.  
  2059.   find: bad status < ./kupfer/cmds.sprited.ds3100/psh >
  2060.   find: bad status < ./kupfer/cmds.sprited.ds3100/ln >
  2061.  
  2062.  
  2063. Additional note:
  2064.  
  2065. Assuming that the lfs repair programs don't ask for user input, it's
  2066. probably a good idea to run them piped into tee, so that you can get a
  2067. log of changes and errors.
  2068.  
  2069. mike
  2070.  
  2071.  
  2072. Log-Number: 32198
  2073. Subject: lust crash: address fault
  2074. Date: Wed, 04 Mar 92 23:19:25 PST
  2075. From: Mike Kupfer <kupfer>
  2076.  
  2077. Lust died again, and for once it didn't have anything to do with LFS. 
  2078. Maybe.
  2079.  
  2080. The message on the console was
  2081.  
  2082.   MachKernelExceptionHandler: Address error on load:
  2083.     addr: 7 PC: 800825a8
  2084.  
  2085. JHH tried to debug it, but his workstation ended up getting hung.
  2086.  
  2087. According to gdb, the instruction at that PC is
  2088.  
  2089.   0x800825a8 <Fslcl_DeleteFileDesc+988>:    lw $t4,8($a2)
  2090.  
  2091. According to "dis", the PC is line 2247 of fslclLookup.c (well, dis
  2092. says 2245, but examing the surrounding code leads me to think 2247):
  2093.  
  2094.   if (uid == descPtr->uid) {
  2095.  
  2096. My guess is that descPtr was NIL.
  2097.  
  2098. I wonder if this has anything to do with the bogus directory entries
  2099. that lfsrebuild left lying around.
  2100.  
  2101. mike
  2102.  
  2103. [5-March-1992: we also got the same crash this afternoon, right before
  2104. the Sprite meeting. -mdk]
  2105.  
  2106.  
  2107. Log-Number: 32199
  2108. Date: Thu, 5 Mar 92 08:24:55 PST
  2109. From: ouster (John Ousterhout)
  2110. Subject: Allspice-Lust lock-up
  2111.  
  2112. Allspice and Lust embraced each other in deadly fashion this morning:
  2113. Allspice was printing the message
  2114.  
  2115. "Client 1 dropped 30 return-atts requests for "spritehosts""
  2116.  
  2117. every few seconds and Lust appeared to be waiting for responses
  2118. from Allspice (there were RPC timeout messages on its console).  Bob
  2119. and I rebooted both machines.
  2120.                     -John-
  2121.  
  2122.  
  2123. Log-Number: 32201
  2124. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  2125. Date: Thu, 5 Mar 1992 10:26:23 PST
  2126. Subject: /user5 screwed up
  2127.  
  2128.  
  2129. Looks like lfsrebuild had some problems fixing /user5, in addition
  2130. to the ones Mike reported yesterday.
  2131.  
  2132. The directory /lost+found/1932/59 also appears as 
  2133. /user5/rab/src/cmds/ee/sun4.md, and its ".." entry points
  2134. to /user5/rab/src/cmds/ee.  This confuses du.
  2135.  
  2136. A "find . -print" in /user5 gives lots of bad status messages, as if
  2137. a bunch of directories contain entries for non-existent files. 
  2138.  
  2139. I propose a multi-step solution:
  2140.  
  2141. 1) change the kernel so that aborted operations are retried. 
  2142. 2) dump /user5 to tape
  2143. 3) make a new file system
  2144. 4) restore /user5 from tape
  2145. 5) fix lfsrebuild
  2146.  
  2147. John
  2148.  
  2149.  
  2150.  
  2151. Log-Number: 32202
  2152. Subject: xwais doesn't use standard text widget?
  2153. Date: Thu, 05 Mar 92 17:08:49 PST
  2154. From: Mike Kupfer <kupfer>
  2155.  
  2156. The text windows inside xwais act like regular Xtk text widgets,
  2157. except they don't seem to pay attention to the resource definitions. 
  2158. In particular, I have a few keys rebound for text widgets (^W and
  2159. meta-W), and the redefinition works for everything except xwais.
  2160.  
  2161. mike
  2162.  
  2163.  
  2164. Log-Number: 32203
  2165. Date: Thu, 5 Mar 92 17:11:28 PST
  2166. From: mani (Mani Varadarajan)
  2167. Subject: X crashed 
  2168.  
  2169.  
  2170. while compiling a program here, X all of a sudden died with the
  2171. message "PdevWrite: signal 14". In addition, "Fs_PageCopy: 
  2172. Copy failed <40008>" appeared.  Then there was a whole slew
  2173. of inetd: select: I/O error messages, topped off by an
  2174. "Exiting:  Too many select errors".  
  2175.  
  2176. that's all the information i have, unfortunately.
  2177.  
  2178. mani
  2179.  
  2180.  
  2181. Log-Number: 32204
  2182. Subject: tar.gnu loses if verbose with really long names 
  2183. Date: Thu, 05 Mar 92 21:58:41 PST
  2184. From: Mike Kupfer <kupfer>
  2185.  
  2186.  
  2187. Posix raised the maximum filename length that tar can handle, but it
  2188. still places an upper bound that is less than MAXPATHLEN.  So Bob
  2189. added a feature to the GNU tar where if it finds a file whose name is
  2190. too long, it generates a (short) unique name for the file and uses
  2191. that name instead.
  2192.  
  2193. Unfortunately, this code is somewhat buggy.  If you turn on "verbose"
  2194. (e.g., "tar cfv foo.tar ..."), tar croaks when it tries to process a
  2195. file with a too-long name.
  2196.  
  2197. The upshot is that if you use the -v ("verbose") option to restore,
  2198. you could end up putting tar.gnu into the debugger.  The workaround is
  2199. to not specify -v.
  2200.  
  2201. mike
  2202.  
  2203.  
  2204. Log-Number: 32207
  2205. Date: Thu, 5 Mar 92 22:47:38 PST
  2206. From: shirriff (Ken Shirriff)
  2207. Subject: Re: gcc compiler chokes on INT_MIN
  2208.  
  2209. I checked and the problem is with the old version of gcc; sscanf handles
  2210. INT_MIN perfectly, so no aspersions should be cast on the writer of sscanf.
  2211.  
  2212. I compiled a program with the sww gcc (version 1.40) and linked in the sprite
  2213. library and it worked fine.  I compiled it with our gcc (version 1.37.1)
  2214. and the assignment of INT_MIN failed.  In both cases, sscanf read INT_MIN
  2215. correctly.  Thus, I conclude the problem is in gcc 1.37.1.
  2216.  
  2217. Ken
  2218.  
  2219.  
  2220. Log-Number: 32209
  2221. Date: Fri, 6 Mar 92 08:11:14 PST
  2222. From: ouster (John Ousterhout)
  2223. Subject: Re: gcc compiler chokes on INT_MIN
  2224.  
  2225. In response to Ken's message:
  2226.  
  2227.     I checked and the problem is with the old version of gcc; sscanf handles
  2228.     INT_MIN perfectly, so no aspersions should be cast on the writer of sscanf.
  2229.     
  2230.     I compiled a program with the sww gcc (version 1.40) and linked in the
  2231.     sprite library and it worked fine.  I compiled it with our gcc (version
  2232.     1.37.1) and the assignment of INT_MIN failed.  In both cases, sscanf
  2233.     read INT_MIN correctly.  Thus, I conclude the problem is in gcc 1.37.1.
  2234.  
  2235. Perhaps I'm mis-understanding what Ken did, but it seems to me that there
  2236. could still be a problem with sscanf.  The potentially-bad sscanf stuff
  2237. occurs in the compiler, when it reads the INT_MIN characters and parses
  2238. that into a number.  Thus, compiling with sww gcc and linking the program
  2239. with the Sprite library might not find the problem, since the bogus parsing
  2240. occurs in the compiler itself, not in the resulting program.
  2241.  
  2242.                     -John-
  2243.  
  2244.  
  2245. Log-Number: 32211
  2246. Date: Fri, 6 Mar 92 11:49:47 PST
  2247. From: shirriff (Ken Shirriff)
  2248. Subject: Re: gcc compiler chokes on INT_MIN
  2249.  
  2250. One of the things I did in my tests was to do sscanf on the INT_MIN string,
  2251. using both %d and %f.  Sscanf returned the proper value in both cases, so
  2252. I conclude that sscanf handles INT_MIN properly.
  2253.  
  2254. Ken
  2255.  
  2256.  
  2257. Log-Number: 32212
  2258. Date: Fri, 6 Mar 92 22:24:21 PST
  2259. From: kupfer (Mike Kupfer)
  2260. Subject: LFS can consume all of memory when you move a disk
  2261.  
  2262. We kept crashing hijack when we tried to attach /user5, which had
  2263. previously been hooked up to lust.  The problem is apparently that LFS
  2264. records in the superblock an estimate of how much memory (number of
  2265. blocks?) to use for cleaning.  Lust has 128MB, hijack has 32MB, so
  2266. when we tried to attach /user5, hijack would run out of memory.
  2267.  
  2268. LFS should probably do a sanity check on the number from the
  2269. superblock (take a look at how much memory is available on the
  2270. machine) and do the Right Thing.
  2271.  
  2272. mike
  2273.  
  2274.  
  2275. Log-Number: 32215
  2276. Subject: glitches from /user5 restore
  2277. Date: Sat, 07 Mar 92 23:24:48 PST
  2278. From: Mike Kupfer <kupfer>
  2279.  
  2280. Dear /user5 user:
  2281.  
  2282. You may notice a couple of glitches from the recent work on /user5.
  2283. First, some files (or directories) that you had deleted or renamed
  2284. might have reappeared.  Unfortunately, this problem is unavoidable,
  2285. and you'll just have to re-remove or rename the suckers as you find
  2286. them.
  2287.  
  2288. Second, it appears that any files that had multiple hard links only
  2289. got one link restored.  xmh users will get bit by this because the xmh
  2290. "copy" command actually just makes a link, rather than copying the
  2291. message.  This is apparently a bug in our backup/restore suite.  I am
  2292. debating hacking up a script to find my missing hard links.  Let me
  2293. know if you're interested in getting a list of missing links for your
  2294. directory.
  2295.  
  2296. mike
  2297.  
  2298.  
  2299.  
  2300. Log-Number: 32216
  2301. Subject: lfsrebuild doesn't fix bad summary magic number
  2302. Date: Sun, 08 Mar 92 18:08:47 PST
  2303. From: Mike Kupfer <kupfer>
  2304.  
  2305. I naively thought that because lfsrebuild complained about the bad
  2306. magic number (in a segment summary block) on /user5, it would fix it. 
  2307. Mendel tells me that this is an incorrect assumption.  I guess it just
  2308. bails out or something.
  2309.  
  2310. mike
  2311.  
  2312.  
  2313. Log-Number: 32218
  2314. Subject: missing fonts for xproof on R5?
  2315. Date: Sun, 08 Mar 92 20:21:25 PST
  2316. From: Mike Kupfer <kupfer>
  2317.  
  2318. I tried running /X11/R4/cmds/xproof on the output from "troff -ms",
  2319. and xproof went into an infinite loop complaining about not being able
  2320. to find
  2321. -adobe-times-medium-r-*--*-100-75-75-mumble-adobe-fontspecific.
  2322.  
  2323. When I tore down my R5 server (on sage) and restarted using R4,
  2324. xproof worked fine.
  2325.  
  2326. mike
  2327.  
  2328.  
  2329. Log-Number: 32222
  2330. Date: Tue, 10 Mar 92 01:31:42 PST
  2331. From: dlong (Dean Long)
  2332. Subject: find patch for descending into mounted filesystems
  2333.  
  2334. Right now find behaves the same no matter if -xdev is specified
  2335. or not.  Here is a quick patch that allows find to descend
  2336. into filesystems.  Specifying -xdev will still disable this
  2337. feature.
  2338.  
  2339. dl
  2340. ---------------------------------------------------------------------
  2341. *** /tmp/,RCSt1852521   Thu Jan  1 01:20:42 1970
  2342. --- find.c      Thu Jan  1 01:20:36 1970
  2343. ***************
  2344. *** 656,661 ****
  2345. --- 656,664 ----
  2346.                 fprintf(stderr, "find: bad status < %s >\n", name);
  2347.                 return(0);
  2348.         }
  2349. +       if ((Statb.st_mode & S_IFMT) == S_IFRLNK) {
  2350. +           stat(fname, &Statb);
  2351. +       }
  2352.         (*exlist->F)(exlist);
  2353.         if((Statb.st_mode&S_IFMT)!=S_IFDIR ||
  2354.            !Xdev && Devstat.st_dev != Statb.st_dev)
  2355.  
  2356.  
  2357. Log-Number: 32226
  2358. Subject: ~sprite/cmds.ds3100/lint on ginger
  2359. Date: Wed, 11 Mar 92 13:04:57 PST
  2360. From: Mike Kupfer <kupfer>
  2361.  
  2362. There's a 1989 version of the lint front-end in ~sprite on ginger. 
  2363. I'm not sure what's so special about it, other than it automatically
  2364. defines the "sprite" flag.  Unfortunately, it's missing some features
  2365. that the Ultrix 4.2 lint has, like automatically defining
  2366. __LANGUAGE_C.  If we no longer do much linting on dill, I think we
  2367. should just flush the version in ~sprite.  Otherwise, we should update
  2368. it to have the features from the Ultrix lint.
  2369.  
  2370. mike
  2371.  
  2372.  
  2373. Log-Number: 32228
  2374. Date: Wed, 11 Mar 92 14:21:21 PST
  2375. From: dlong (Dean Long)
  2376. Subject: Sprite on Sun IPX
  2377.  
  2378. The sun4c kernel runs almost flawlessly on a Sun 4/50 (IPX),
  2379. which is basically a Sparc 2 in an IPC box.  The only problem
  2380. I saw was running X.  The code for the cg6 frame buffer
  2381. wasn't quite right.  Hopefully I'll have a patch for it
  2382. pretty soon.
  2383.  
  2384. dl
  2385.  
  2386.  
  2387. Log-Number: 32229
  2388. Subject: valloc & source compatibility
  2389. Date: Wed, 11 Mar 92 14:38:29 PST
  2390. From: Mike Kupfer <kupfer>
  2391.  
  2392. We don't provide valloc in the C library, which is occasionally a
  2393. stumbling block when importing new sources.  Can anyone think of a
  2394. reason for not just making valloc be a facade over malloc?  (I'm
  2395. assuming that our malloc returns page-aligned objects for sizes of at
  2396. least one page; the man page was unclear on this point.)
  2397.  
  2398. mike
  2399.  
  2400.  
  2401. Log-Number: 32230
  2402. Subject: signal mask back door
  2403. Date: Wed, 11 Mar 92 16:35:07 PST
  2404. From: Mike Kupfer <kupfer>
  2405.  
  2406.  
  2407. A user signal handler can mung the signals hold mask that's stored in
  2408. the Sig_Context.  Sig_Return takes whatever's stored there, without
  2409. checking it against sigCanHoldMask.  
  2410.  
  2411. I don't think this is much of a back door, but it should probably be
  2412. fixed some day.
  2413.  
  2414. Note that merely ANDing the saved context mask with sigCanHoldMask can
  2415. do the Wrong Thing.  For example, if the SIGSEGV handler causes a
  2416. floating point signal, then when the floating point handler returns,
  2417. the hold mask should still have the segv bit turned on.
  2418.  
  2419. mike
  2420.  
  2421.  
  2422. Log-Number: 32232
  2423. Date: Thu, 12 Mar 92 09:04:20 PST
  2424. From: sullivan (Mark Sullivan)
  2425. Subject: Ofs_FileDescInit fetched non-free file descriptor
  2426.  
  2427. Is this a known bug?  I rebooted this morning after a VmPageRead error
  2428. on a swap file and now I cannot create files on /postdev.  The cshell
  2429. tells me that "file already exists" whenever I try to do a shell command
  2430. that involves creation of a file (e.g. touch, redirected stdout).  The
  2431. error message in the subject line is all over piracy's monitor, so I
  2432. assume this is what OFS thinks is the problem.  
  2433.  
  2434. Incidently, df gives me some pretty wierd answers.  I thought the
  2435. disk might be full, but:
  2436.  
  2437. Prefix    Server         KBytes       Used      Avail    % Used
  2438. /postdev  piracy         309808       -579     279406       0%
  2439.  
  2440. Mark
  2441.  
  2442.  
  2443. Log-Number: 32233
  2444. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  2445. Date: Thu, 12 Mar 1992 10:29:11 PST
  2446. Subject: Re: Ofs_FileDescInit fetched non-free file descriptor
  2447.  
  2448. Piracy needs to be rebooted.  The entry for postdev was missing
  2449. from the mount file, so fscheck wasn't being run on reboot.  
  2450. Running fscheck should take care of the problems (I hope).
  2451.  
  2452. John
  2453.  
  2454.  
  2455. Log-Number: 32234
  2456. Date: Thu, 12 Mar 92 11:41:20 -0800
  2457. From: dlong@cats.UCSC.EDU (Dean R. E. Long)
  2458. Subject: Re: Ofs_FileDescInit fetched non-free file descriptor
  2459.  
  2460. I also get the same error every once in a while after a crash,
  2461. usually on the root filesystem.  A quick fix seems to be:
  2462.  
  2463. 1. mv <bad_dir> <tmp_dir>
  2464. 2. mkdir <bad_dir>
  2465. 3. mv <tmp_dir>/* dir
  2466. 4. reboot and recheck filesystem
  2467.  
  2468. Without steps 1-3, the future fscheck doesn't seem to fix the problem.
  2469. My guess is there are still problems with fscheck running on / after
  2470. it is mounted.
  2471.  
  2472. dl
  2473.  
  2474.  
  2475. Log-Number: 32238
  2476. Date: Thu, 12 Mar 92 23:53:37 PST
  2477. From: voelker (Geoffrey M. Voelker)
  2478. Subject: lust + /user6
  2479.  
  2480.  
  2481. /user6 filled up at around 11:30 tonight, and a few minutes later
  2482. lust crashed (but they seem to be unrelated incidents).
  2483.  
  2484. Lust's console read:
  2485.  
  2486. Fatal Error: OutputPacket: packet too large (3686)
  2487. Enterring debugger with a Breakpoint trap exception at PC 0x800e786c
  2488.  
  2489. I rebooted lust, and removed some stuff in my home directory on /user6.
  2490. It has about 4 megs free as of this message...
  2491.  
  2492. -geoff
  2493.  
  2494.  
  2495. Log-Number: 32240
  2496. Date: Fri, 13 Mar 92 22:36:58 PST
  2497. From: mottsmth (Jim Mott-Smith)
  2498. Subject: Sabotage and Sage wedged up running 1.110
  2499.  
  2500.  
  2501. Sabotage and Sage completely wedged up twice tonight running
  2502. the new kernel.  Mike and I debugged it as far as we could.
  2503.  
  2504. Sage wedged up with everyone stuck waiting for a monitor
  2505. lock held in Fsutil_WaitListNotify. The lock was held
  2506. by a process waiting on an RPC to sabotage. Why the RPC didn't
  2507. time out (since Sabotage was sick) is a mystery.  The timer
  2508. queue appeared normal.
  2509.  
  2510. Sabotage's condition is also a mystery. Most of the waiting processes
  2511. had event values = -1 so there was no obvious source of trouble.
  2512.  
  2513. -- Jim M-S
  2514.  
  2515.  
  2516.  
  2517.  
  2518. Log-Number: 32241
  2519. Date: Fri, 13 Mar 92 23:51:02 -0800
  2520. From: dlong@cats.UCSC.EDU (Dean R. E. Long)
  2521. Subject: 1.110 kernel
  2522.  
  2523. My 16M file server (don't laugh, the CPU board went out on the previous
  2524. IPC file server for about the 5th time) ran out of memory before it got
  2525. done booting with the 1.110 kernel.  I had to go back to the 1.109 kernel.
  2526. I think most of the memory is going to LFS reserving cache blocks
  2527. for cleaning.  I reset the maxNumCacheBlocks entry on all my
  2528. LFS file systems to a lower number to save memory.  Maybe the 1.110
  2529. is only treating it as a hint and using more memory than I want?
  2530.  
  2531. dl
  2532.  
  2533.  
  2534. Log-Number: 32243
  2535. Subject: kmsg and sun3's
  2536. Date: Sun, 15 Mar 92 14:46:11 PST
  2537. From: Mike Kupfer <kupfer>
  2538.  
  2539. Has anyone been able to use kmsg with a sun3 recently?  It seems like
  2540. I always get a complaint about "Short read" when I try to kmsg a sun3
  2541. from a sun4.
  2542.  
  2543. mike
  2544.  
  2545.  
  2546. Log-Number: 32244
  2547. Date: Sun, 15 Mar 92 15:34:07 -0800
  2548. From: sullivan@postgres.Berkeley.EDU (Mark Sullivan)
  2549. Subject: VmPageServerRead: non-existent swap file
  2550.  
  2551. jhh tells me this is an LFS problem.  The client machine's kernel panics
  2552. when LFS munches a swap file.  My kernel has tripped over this error
  2553. several times in the last few weeks, but Jim has seen it on sabotage also.
  2554. I know fixing LFS is going to be hard, but it would help me a lot if
  2555. we could change the vm module to kill the offending process rather than
  2556. panic.  I have been running tests at night and I lose a lot of time
  2557. if the kernel goes out.   If anyone does fix this, please let me know
  2558. since I will have to rebuild my kernel with the fix.
  2559.  
  2560. Thanks,
  2561. Mark
  2562.  
  2563.  
  2564.  
  2565. Log-Number: 32262
  2566. Date: Sat, 21 Mar 92 10:50:47 PST
  2567. From: sullivan (Mark Sullivan)
  2568. Subject: VmPageServerRead non-existent swap file
  2569.  
  2570.  
  2571. panic killed my kernel again last night.  Also, I've been noticing
  2572. ECC errors in the memory of arson and piracy.  I usually only see
  2573. them during reboot since I always log into the machines remotely
  2574. and they only show up on the console.  I've seen them on the console
  2575. of arson also after programs died mysteriously.
  2576.  
  2577. Mark
  2578.  
  2579.  
  2580. Log-Number: 32264
  2581. Subject: Re: VmPageServerRead non-existent swap file 
  2582. Date: Sun, 22 Mar 92 00:02:05 PST
  2583. From: Mike Kupfer <kupfer>
  2584.  
  2585. I looked into changing VmPageServerRead to return VM_SWAP_ERROR
  2586. instead of panicing.  Almost all its callers either (a) nuke the
  2587. process(es) that want the page or (b) mark the page as invalid (so
  2588. presumably the process(es) will die with an address fault).
  2589.  
  2590. There is one exception, though.  VmSegCantCow calls VmCOWCopySeg,
  2591. which calls COR, which calls VmPageServerRead.  Unfortunately,
  2592. VmSegCantCow ignores the return value from VmCOWCopySeg.  On the other
  2593. hand, it doesn't look like anyone actually uses VmSegCantCOW, so maybe
  2594. I can just flush it?
  2595.  
  2596. mike
  2597.  
  2598.  
  2599. Log-Number: 32245
  2600. Date: Sun, 15 Mar 92 17:52:50 PST
  2601. From: shirriff (Ken Shirriff)
  2602. Subject: Runaway csh on lust
  2603.  
  2604. Root had a runaway csh -i using 90% of the CPU.  I tried to debug it,
  2605. but dbx blew it away for some reason.
  2606.  
  2607. Ken
  2608.  
  2609.  
  2610. Log-Number: 32246
  2611. Date: Sun, 15 Mar 92 18:05:27 PST
  2612. From: shirriff (Ken Shirriff)
  2613. Subject: violence seems unreliable
  2614.  
  2615. Violence crashed with an ethernet error and then I couldn't get it
  2616. to reboot.  I moved it to another desk and then it would reboot.
  2617. I moved it downstairs and it wouldn't reboot.  I powercycled it and
  2618. then it would reboot.  I don't know if it is tempermental or has some
  2619. real ethernet problem.
  2620.  
  2621. Ken
  2622.  
  2623.  
  2624. Log-Number: 32249
  2625. Subject: misleading error status if file name component too big?
  2626. Date: Mon, 16 Mar 92 18:42:37 PST
  2627. From: Mike Kupfer <kupfer>
  2628.  
  2629. Suppose you type "touch foo", where foo is a file name longer than
  2630. FS_MAX_NAME_LENGTH (255) characters (which is the limit on a single
  2631. component of a name).  Fs_Open, which is called by creat() inside
  2632. "touch", returns FS_FILE_NOT_FOUND.  Shouldn't that be FS_INVALID_ARG?
  2633.  
  2634. mike
  2635.  
  2636.  
  2637. Log-Number: 32251
  2638. Date: Tue, 17 Mar 92 19:32:45 PST
  2639. From: mani@villandry.berkeley.edu (Mani Varadarajan)
  2640. Subject: Cory sprite hung
  2641.  
  2642.  
  2643. when i came in this morning, king was in the debugger with the
  2644. message:
  2645.  
  2646. MachKernelExceptionHandler address error on load: 
  2647. addr: 100023 pc: 800eda08
  2648. Entering debugger with a TLB load address error 
  2649. exception at pc 0x800eda08.
  2650.  
  2651. king is running the 1.109 kernel. i tried to attach to
  2652. it to get a trace of what had happened, but i couldn't
  2653. connect to it.
  2654.  
  2655. mani
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661. Log-Number: 32254
  2662. Date: Thu, 19 Mar 92 02:22:16 PST
  2663. From: gunter (Michial Gunter)
  2664. Subject: Emacs crashes on ds5000's -- Illegal Instruction
  2665.  
  2666.  
  2667. Actions speak louder than words:
  2668.  
  2669.  
  2670. subversion[37]:~:2:11am:> emacs -r &
  2671. [6] 15a7d
  2672. subversion[38]:~:2:12am:>
  2673.  
  2674. I type "ESC-x gnus" invoking the gnus news reader.
  2675. It does some stuff then crashes - apparently during garbage
  2676. collection.
  2677.  
  2678. [6]  + Illegal instruction        emacs -r
  2679.  
  2680.  
  2681.  
  2682. Notes:
  2683.  
  2684. 1) On sun4s this doesn't seem to happen.
  2685.  
  2686. 2) It crashed at a couple other times tonight.  I would venture, then,
  2687. that the problem area is not hit only by gnus. 
  2688.  
  2689. 3) I tried (for not too long) to reproduce this behavior when I run
  2690. emacs with the -q (don't load init file) option.  I wasn't able to.
  2691.  
  2692. 4) This behavior is new --- probably new today.
  2693.  
  2694.  
  2695.  
  2696.  
  2697. I'd be interested to hear what the problem is.
  2698.  
  2699.         thanks,
  2700.         mike
  2701.  
  2702.  
  2703. Log-Number: 32258
  2704. Subject: Re: Emacs crashes on ds5000's -- Illegal Instruction 
  2705. Date: Thu, 19 Mar 92 15:44:30 PST
  2706. From: Mike Kupfer <kupfer>
  2707.  
  2708. Well, I looked at the dead Emacs on subversion and I tried again to
  2709. duplicate the problem.
  2710.  
  2711. What appears to be happening is that the garbage collector (the actual
  2712. function is mark_object) finds an object with a bogus tag, so it
  2713. panics.
  2714.  
  2715. I su'd to you and couldn't duplicate the problem, even after sourcing
  2716. your .login.  I did an "su -" to you and the problem appeared. 
  2717. Further experimentation seems to point at something in
  2718. ~kupfer/emacs/default.el that makes the problem go away (or at least
  2719. postpones it).
  2720.  
  2721. I'm afraid I don't have more time to look into this right now.  I'll
  2722. put it into my Todo list, but it's not likely I'll get to it any time
  2723. soon.  If you come up with more information to help pin down the bug,
  2724. please send mail to bugs.
  2725.  
  2726. thanks,
  2727. mike
  2728.  
  2729.  
  2730. Log-Number: 32257
  2731. Subject: Ultrix lint & cc understand void, prototypes
  2732. Date: Thu, 19 Mar 92 11:59:01 PST
  2733. From: Mike Kupfer <kupfer>
  2734.  
  2735. The Ultrix lint installed on dill understands void pointers and
  2736. function prototypes, as does the C compiler.
  2737.  
  2738. Bob already installed the C compiler on Sprite.  If nobody else gets
  2739. to it before I do, I'll install the new lint, but don't hold your
  2740. breath. :-)
  2741.  
  2742. (The Ultrix cc doesn't seem to have an equivalent to -Wall, so it's
  2743. probably a good idea to keep using lint.)
  2744.  
  2745. Do we want to change <cfuncproto.h> to enable function prototypes and
  2746. void pointers for DECstations?
  2747.  
  2748. mike
  2749.  
  2750.  
  2751. Log-Number: 32260
  2752. Subject: Re: printer problem 
  2753. Date: Fri, 20 Mar 92 10:21:45 PST
  2754. From: Mike Kupfer <kupfer>
  2755.  
  2756. I restarted the daemon and that unclogged the queue.
  2757.  
  2758. Bob, this is something you could do.  If lpq on Sprite claims to be
  2759. waiting for shallot, but lpq on shallot looks normal ("no entries"),
  2760. then try (on Sprite)
  2761.  
  2762. 1. su'ing to root
  2763. 2. type "lpc restart lw533", which kills off the old printer daemon
  2764. and starts a new one.
  2765.  
  2766. If that doesn't fix things, then it's time for mail to bugs. 
  2767.  
  2768. mike
  2769.  
  2770.  
  2771.  
  2772. Log-Number: 32263
  2773. Subject: scvs: more paranoia and better signal handling
  2774. Date: Sat, 21 Mar 92 21:48:16 PST
  2775. From: Mike Kupfer <kupfer>
  2776.  
  2777.  
  2778. I occasionally cd to /sprite/src/kernel and forget to cd to my subtree
  2779. before doing "scvs co mumble".  Is this ever legal, or must one always
  2780. be in a private subdirectory?  Even if it's legal, I think we should
  2781. make it hard to do, because cvs will cheerfully go in and make any
  2782. files the user owns user- and group-writable (this is in
  2783. /sprite/src/kernel/module_name, mind you).  Lord only knows what other
  2784. mischief it causes.
  2785.  
  2786. Also, once you discover that you just Screwed Up, it's hard to kill
  2787. scvs off.  You hit control-C (and again and again and again) and scvs
  2788. just keeps chugging along.
  2789.  
  2790. mike
  2791.  
  2792.  
  2793. Log-Number: 32265
  2794. Date: Sun, 22 Mar 92 16:43:03 PST
  2795. From: gunter (Michial Gunter)
  2796. Subject: Emacs on Sprite
  2797.  
  2798.  
  2799.  
  2800. The emacs on sprite does not seem to appropriately handle the signals
  2801. sent from the keyboard (via C-c C-c or C-c C-z) to a program being
  2802. debugged by gdb.  
  2803.  
  2804. I recall seeing that a later version of emacs had a fix I remember to
  2805. have been concerned with this issue.
  2806.  
  2807. If this is the case, I would be willing to help with the
  2808. reinstallation of emacs on Sprite, if that is deemed
  2809. appropriate/useful.
  2810.  
  2811.  
  2812.     thanks,
  2813.     mike
  2814.  
  2815.  
  2816. Log-Number: 32266
  2817. Subject: Re: Emacs on Sprite 
  2818. Date: Sun, 22 Mar 92 18:43:00 PST
  2819. From: Mike Kupfer <kupfer>
  2820.  
  2821. Emacs on Sprite has a general problem sending signals to subshells
  2822. (e.g., C-c C-c doesn't work in shell mode, either).
  2823.  
  2824. I think this is a Sprite problem rather than an Emacs problem, because
  2825. I run Emacs 18.54 on both Sprite and Mach, and Sprite has the problem
  2826. whereas Mach doesn't.  On the other hand, I didn't build Emacs for my
  2827. Mach system, so maybe it has a patch in it.
  2828.  
  2829. So, if you have some diffs that you think solve the problem, let me
  2830. know, and I'll try applying them.
  2831.  
  2832. If you are volunteering to install a new version of Emacs from
  2833. scratch, you should first 
  2834.  
  2835.   (a) read the Sprite Engineering Manual, so that you understand Sprite
  2836.   source organization (you can get a copy from 533 Evans), and
  2837.  
  2838.   (b) look at the RCS history for the currently installed Emacs (in
  2839.   /local/emacs/src/cmds/emacs), so that you get a feel for the changes
  2840.   that need to be made, e.g., to support Sprite pseudo-devices.
  2841.  
  2842. If after doing these two things you are still interested in installing
  2843. a new Emacs, please come talk to me, so that I can convince you to
  2844. install Epoch at the same time. :-)
  2845.  
  2846. mike
  2847.  
  2848.  
  2849. Log-Number: 32267
  2850. Subject: names for UNIX-compat signals?
  2851. Date: Tue, 24 Mar 92 21:26:39 PST
  2852. From: Mike Kupfer <kupfer>
  2853.  
  2854. There are a handful of UNIX signals for which Sprite doesn't have an
  2855. equivalent signal.  Among them are: SIGIOT, SIGEMT, SIGIO, SIGWINCH,
  2856. SIGUSR1, and SIGUSR2.  The code that converts between Sprite and UNIX
  2857. signal numbers maps these UNIX signals into the integers 26 through
  2858. 31 (the remaining ones are all mapped to 0).
  2859.  
  2860. I assume that these numbers were never given names because of the
  2861. long-standing plan to use UNIX signal numbers for everything.  If this
  2862. conversion is not likely to happen any time soon, though, I would like
  2863. to assign names to these signal numbers.  I need to use them inside
  2864. the kernel (to get the default signal behavior right) and would much
  2865. prefer to use a name than a bare integer.
  2866.  
  2867. My plan is to use the following names:
  2868.  
  2869.     UNIX        proposed Sprite name    Sprite number
  2870.     -----        -----            -----
  2871.     SIGIOT        SIG_IOT            28
  2872.     SIGEMT        SIG_EMT            29
  2873.     SIGIO        SIG_IO_READY        26
  2874.     SIGWINCH    SIG_WINDOW_CHANGE    27
  2875.     SIGUSR1        SIG_USER1        30
  2876.     SIGUSR2        SIG_USER2        31
  2877.  
  2878. If you think that assigning names to these signals is a mistake, or if
  2879. you have an alternate suggestion for a name, please send me mail soon.
  2880.  
  2881. mike
  2882.  
  2883.  
  2884. Log-Number: 32268
  2885. Subject: stderr buffering inconsistent BSD, SunOS
  2886. Date: Wed, 25 Mar 92 14:21:06 PST
  2887. From: Mike Kupfer <kupfer>
  2888.  
  2889. The Sprite stdio package buffers writes to stderr, which means that if
  2890. you run the program below, you have to let it run for awhile before
  2891. you see anything.  If you run the program on okeeffe or ginger, you
  2892. start getting output immediately.
  2893.  
  2894. I guess this is primarily an issue for programs that write debugging
  2895. messages to stderr and don't end each message with a newline.
  2896.  
  2897. mike
  2898. --
  2899. #include <stdio.h>
  2900.  
  2901. main()
  2902. {
  2903.     while (1) {
  2904.     fprintf(stderr, ".");
  2905.     sleep(2);
  2906.     }
  2907. }
  2908.  
  2909.  
  2910. Log-Number: 32269
  2911. Subject: possible explanation for Error code 16
  2912. Date: Wed, 25 Mar 92 14:41:32 PST
  2913. From: Mike Kupfer <kupfer>
  2914.  
  2915. I've been trying to figure out what causes the random Error code 16's
  2916. when running pmake.  Here's what I think is happening.
  2917.  
  2918. If a migrated process does a Proc_Wait(), that turns into an RPC to
  2919. the home machine.  On the home machine this is implemented by
  2920. Proc_RpcRemoteWait.  Proc_RpcRemoteWait verifies that the process
  2921. doing the waiting is, in fact, migrated and returns PROC_NO_PEER if it
  2922. isn't.  
  2923.  
  2924. Well, I recently got a message in my syslog saying that
  2925. Proc_RpcRemoteWait had found a READY, not MIGRATED, process, and sure
  2926. enough, there was a new "error code 16" in my pmake log.  
  2927.  
  2928. Examination of Proc_MigrateTrap shows a large chunk of code between
  2929. (a) the point where the process is started up on the remote host and
  2930. (b) the point where the process context switches to the MIGRATED
  2931. state.  The process is unlocked during parts of this code, and the
  2932. MIGRATING flag is cleared long before the context switch.
  2933.  
  2934. So, I think what's happening is a process gets evicted and then
  2935. remigrated.  When it resumes on the remote machine it quickly does a
  2936. Proc_Wait.  Proc_RpcRemoteWait is called on the home machine before
  2937. the home process has context switched, and the result is you get this
  2938. error.
  2939.  
  2940. I think the basic fix for this is to lock the process before context
  2941. switching, using Proc_UnlockAndSwitch to do the context switch, and to
  2942. delay clearing the MIGRATING flag until the final Proc_Lock before the
  2943. context switch.  The only question is what other changes should be
  2944. made to Proc_MigrateTrap because of the new place for clearing the
  2945. MIGRATING flag.  For example, maybe the call to ProcMigWakeupWaiters
  2946. should get moved.  Will there be any problems if it's called while the
  2947. migrating process is locked?  How does clearing the MIGRATING flag
  2948. interact with the MIG_ERROR flag?
  2949.  
  2950. mike
  2951.  
  2952.  
  2953. Log-Number: 32273
  2954. Date: Fri, 27 Mar 92 17:57:56 PST
  2955. From: voelker (Geoffrey M. Voelker)
  2956. Subject: `<file> not found' with ls
  2957.  
  2958.  
  2959. The LFS filesystem on a local disk on arson became buggy when arson
  2960. went into the debugger.  Before it crashed, I had created a directory
  2961. called `/t/t1/blah'.  When I do an `ls', ls reports that it can't find
  2962. `blah'.  When I do a `mkdir /t/t1/blah', it creates another shadow
  2963. `blah' directory and ls reports not finding multiple instances of `/t/t1/blah'.
  2964. (Currently there are three shadow directories called `blah').  
  2965.  
  2966. `rmdir' can't find the directory either.
  2967.  
  2968. I believe I remember seeing a bug report to this effect earlier when there
  2969. was the deluge of LFS problems.
  2970.  
  2971. -geoff
  2972.  
  2973. p.s. I'm sorry if my directory names are so, well, blah.  (It had to be said.)
  2974.  
  2975.  
  2976. Log-Number: 32274
  2977. Date: Sat, 28 Mar 92 20:23:39 PST
  2978. From: mottsmth (Jim Mott-Smith)
  2979. Subject: /usr/sww/X11R5/bin/xfig
  2980.  
  2981.  
  2982. Under compatibility, xfig dies on sparcs with
  2983.     ld.so: text write-enable error (22) for main_$main_
  2984. and
  2985.      Page out of range
  2986.  in the syslog.
  2987.  
  2988. The Decstation version seems to work.
  2989.  
  2990. -- Jim M-S
  2991.  
  2992.  
  2993. Log-Number: 32276
  2994. Subject: netroute: documentation, naming
  2995. Date: Tue, 31 Mar 92 15:31:26 PST
  2996. From: Mike Kupfer <kupfer>
  2997.  
  2998. /boot/bootcmds still refers to both netroute and netroute.new.
  2999.  
  3000. The man page for netroute says nothing about -v.
  3001.  
  3002. mike
  3003.  
  3004.  
  3005. Log-Number: 32279
  3006. Subject: LFS structures getting smashed?
  3007. Date: Tue, 31 Mar 92 22:01:23 PST
  3008. From: Mike Kupfer <kupfer>
  3009.  
  3010. I've now seen the following problem on arson and oregano.  Arson was
  3011. running a private kernel of Geoff's, while oregano was running a
  3012. private kernel of mine.  
  3013.  
  3014. The problem is that some process calls Lfs_StartWriteBack and hangs on
  3015. the monitor lock.  Unfortunately, it's holding the fscache monitor
  3016. lock (fscacheBlocks.c), and eventually processes start piling up.
  3017.  
  3018. The reason the process hangs on the lfs monitor lock seems to be that
  3019. memory is getting trashed.  Gdb reports values like
  3020.  
  3021.   (gdb) print $5.cacheBackendLock
  3022.   $6 = {inUse = -2129645736, waiting = 1, name = 0x3ffc8020 ERROR: invalid read address 0x3ffc8020
  3023.   "", holderPC = 0x96488020 ERROR: invalid read address 0x96488020
  3024.   "", holderPCBPtr = 0x96000208}
  3025.  
  3026. When I first saw this on Arson I assumed it was gdb lying to me again.
  3027. Now I'm beginning to think that it's telling the truth and that
  3028. somebody is stomping on the LFS data structures.
  3029.  
  3030. Has anyone else seen this?
  3031.  
  3032. mike
  3033.  
  3034.  
  3035. Log-Number: 32284
  3036. Subject: Re: LFS structures getting smashed? 
  3037. Date: Thu, 02 Apr 92 13:30:26 -0500
  3038. From: Fred Douglis <douglis@MITL.COM>
  3039.  
  3040. I have been playing with some memory-intensive stuff on sprite and I
  3041. found two interesting problems: one is that the machine would deadlock
  3042. in the way you described, and the other is that at some point LFS
  3043. would stop booting because it would get garbage in the summary block
  3044. at startup.  The second certainly suggests that LFS is getting
  3045. trashed, and perhaps needs to do more sanity checks when it writes its
  3046. checkpoints.  The first, though, I thought was a real deadlock, and
  3047. when I glanced through old sprite log messages on the subject it
  3048. seemed this symptom had come up a lot before.  (Pete had complained
  3049. about it fairly recently, I think.)  As for gdb, on the decstations
  3050. here it gives me garbage so often that I've wound up resorting to
  3051. printfs more often than not.
  3052.  
  3053. Fred
  3054.  
  3055.  
  3056. Log-Number: 32280
  3057. From: mgbaker (Mary Gray Baker)
  3058. Subject: mail file corrupted
  3059. Date: Wed, 01 Apr 92 11:09:03 PST
  3060.  
  3061. /usr/spool/mail/mgbaker had garbage in it this morning.  (Well, garbage
  3062. of a more extreme variety than it usually contains.)   It started out with
  3063. something that went on for a long ways saying stuff like:
  3064.  
  3065. 2768
  3066. 0 0 0
  3067. 16
  3068. 0 325 4 0 0
  3069. Proc_GetPCBInfo
  3070. 2
  3071. 3 334 36 0 0
  3072. Sig_Send
  3073. 4 0 0
  3074. 14 0 0
  3075. 4 0 0
  3076. 16
  3077. 0 349 4 0 0
  3078. Sig_Send
  3079. 2
  3080. 2 355 36 0 0
  3081. Sig_SetHoldMask
  3082. 4 0 0
  3083. 20 0 0
  3084. 16
  3085. 0 369 4 0 0
  3086. Sig_SetHoldMask
  3087. 2
  3088. 2 375 36 0 0
  3089. Sys_GetMachineInfo
  3090. 4 0 0
  3091. 18 0 0
  3092. 16
  3093. 0 390 4 0 0
  3094. Sys_GetMachineInfo
  3095. 2
  3096. 2 396 36 0 0
  3097. Sys_Shutdown
  3098. 4 0 0
  3099. 18 0 0
  3100. 16
  3101. 0 409 4 0 0
  3102. Sys_Shutdown
  3103. 2
  3104.  
  3105.  
  3106. Log-Number: 32281
  3107. Date: Wed, 1 Apr 92 13:51:55 PST
  3108. From: mottsmth (Jim Mott-Smith)
  3109. Subject: Ghostview dies in compatibility mode
  3110.  
  3111.  
  3112. Ghostview dies with a bus error consistently
  3113. when run from sww.
  3114.  
  3115. -- Jim M-S
  3116.  
  3117.  
  3118. Log-Number: 32282
  3119. From: mgbaker (Mary Gray Baker)
  3120. Subject: Unable to fetch handle for cleaning
  3121. Date: Wed, 01 Apr 92 15:02:45 PST
  3122.  
  3123. Allspice hung for a long time (many minutes) cleaning /swap1.  It was
  3124. printing repeatedly to its console:
  3125.     Can't fetch handle for file 54483 for cleaning
  3126.  
  3127. It finally finished cleaning swap1, so maybe this isn't a problem.  Sure took
  3128. awhile, though.
  3129.  
  3130.  
  3131. Mary
  3132.  
  3133.  
  3134. Log-Number: 32283
  3135. Date: Wed, 1 Apr 92 16:53:00 PST
  3136. From: elm (ethan miller)
  3137. Subject: CRC/framing errors on sparc2
  3138.  
  3139. I'm running FrameMaker on my workstation (terrorism), and I seem to
  3140. get an ethernet framing error & CRC error with every character I type.
  3141. The FrameMaker program is actually running on joyride, but the display
  3142. being used is terrorism's.  Any idea what's causing these problems?
  3143. As far as I can tell, there are no additional side effects (ie, the
  3144. program seems to work fine).
  3145.  
  3146. ethan
  3147.  
  3148.  
  3149. Log-Number: 32284
  3150. Subject: Re: LFS structures getting smashed? 
  3151. Date: Thu, 02 Apr 92 13:30:26 -0500
  3152. From: Fred Douglis <douglis@MITL.COM>
  3153.  
  3154. I have been playing with some memory-intensive stuff on sprite and I
  3155. found two interesting problems: one is that the machine would deadlock
  3156. in the way you described, and the other is that at some point LFS
  3157. would stop booting because it would get garbage in the summary block
  3158. at startup.  The second certainly suggests that LFS is getting
  3159. trashed, and perhaps needs to do more sanity checks when it writes its
  3160. checkpoints.  The first, though, I thought was a real deadlock, and
  3161. when I glanced through old sprite log messages on the subject it
  3162. seemed this symptom had come up a lot before.  (Pete had complained
  3163. about it fairly recently, I think.)  As for gdb, on the decstations
  3164. here it gives me garbage so often that I've wound up resorting to
  3165. printfs more often than not.
  3166.  
  3167. Fred
  3168.  
  3169.  
  3170. Log-Number: 32285
  3171. Date: Thu, 2 Apr 92 12:16:55 PST
  3172. From: shirriff (Ken Shirriff)
  3173. Subject: lpd out of control
  3174.  
  3175. The lpd on hijack (ds5000) was out of control, printing zillions of
  3176. <51>Apr  2 12:14:53 lpd[31f14]: accept: stale remote file handle
  3177.  
  3178. I did a kill -DEBUG, but the process disappeared.
  3179.  
  3180. Ken
  3181.  
  3182.  
  3183. Log-Number: 32286
  3184. Subject: dangling symbolic links in /sprite/src
  3185. Date: Thu, 02 Apr 92 18:15:41 PST
  3186. From: Mike Kupfer <kupfer>
  3187.  
  3188. I started a large "find" in /sprite/src to look for references to
  3189. certain UNIX signals.  I've been finding quite a few symbolic links
  3190. that point off into nowhere.  In addition to links in admin/fsmake and
  3191. admin/fsinstall (which I've already mentioned to John H.), there's
  3192.  
  3193. benchmarks/pipe:
  3194.   printStats.c -> /sprite/src/cmds/bench/printStats.c
  3195.  
  3196. boot/xyDiskBoot:
  3197.   fs.h -> ../generic/fs.h
  3198.   dev.c -> ../generic/dev.c
  3199.   devConfig.c -> ../generic/devConfig.c
  3200.   fsOpTable.c -> ../generic/fsOpTable.c
  3201.   fsOpTable.h -> ../generic/fsOpTable.h
  3202.   string.c -> ../generic/string.c
  3203.  
  3204. boot/scsiTapeBoot:
  3205.   dev.c -> ../generic/dev.c
  3206.   devConfig.c -> ../generic/devConfig.c
  3207.   string.c -> ../generic/string.c
  3208.   fsOpTable.c -> ../generic/fsOpTable.c
  3209.   fsOpTable.h -> ../generic/fsOpTable.h
  3210.  
  3211. boot/scsiDiskBoot.old:
  3212.   fsDisk.h -> /sprite/src/kernel/fs/fsDisk.h
  3213.  
  3214. cmds/kgdb.sun3.new:
  3215.   initialized_all_files.c -> gdb/initialized_all_files.c
  3216.  
  3217. kernel/fs.all:
  3218.   main.c -> ../fs/sizeof/main.c
  3219.   pfs.h -> ../fspdev/dev.old/pfs.h
  3220.  
  3221. lib/include/g++/sys:
  3222.   fcntl.h -> /sprite/src/lib/g++/g++-include/sys/fcntl.h
  3223.  
  3224. lib/fig2dev:
  3225.   fig2dev.h -> /X11/R4/src/cmds/fig2dev/dist/fig2dev.h
  3226.   genbox.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genbox.c
  3227.   genepic.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genepic.c
  3228.   genlatex.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genlatex.c
  3229.   genpic.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genpic.c
  3230.   genpictex.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genpictex.c
  3231.   genps.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genps.c
  3232.   genpstex.c -> /X11/R4/src/cmds/fig2dev/dist/dev/genpstex.c
  3233.   gentextyl.c -> /X11/R4/src/cmds/fig2dev/dist/dev/gentextyl.c
  3234.   gentpic.c -> /X11/R4/src/cmds/fig2dev/dist/dev/gentpic.c
  3235.   object.h -> /X11/R4/src/cmds/fig2dev/dist/object.h
  3236.   pi.h -> /X11/R4/src/cmds/fig2dev/dist/pi.h
  3237.   picfonts.h -> /X11/R4/src/cmds/fig2dev/dist/dev/picfonts.h
  3238.   psfonts.h -> /X11/R4/src/cmds/fig2dev/dist/dev/psfonts.h
  3239.   texfonts.c -> /X11/R4/src/cmds/fig2dev/dist/dev/texfonts.c
  3240.   texfonts.h -> /X11/R4/src/cmds/fig2dev/dist/dev/texfonts.h
  3241.   tpicfonts.h -> /X11/R4/src/cmds/fig2dev/dist/dev/tpicfonts.h
  3242.  
  3243.  
  3244. Also, /sprite/src/lib/m/fmod.c is mode 600, and
  3245. /sprite/src/lib/tk/dist/ks_names.h is mode 400.  Shouldn't these files
  3246. be at least group-readable? 
  3247.  
  3248. mike
  3249.  
  3250. [30-Apr-92: we punted on the kgdb link (do this the next time the gdb
  3251. sources are rationalized) and the g++ link (let the g++ users worry
  3252. about it).  Jim will look at the fig2dev stuff. -mdk ]
  3253.  
  3254.  
  3255. Log-Number: 32290
  3256. Subject: allspice rebooted after hanging
  3257. Date: Fri, 03 Apr 92 14:05:06 PST
  3258. From: Mike Kupfer <kupfer>
  3259.  
  3260. In an ironic twist, allspice got hung on a reopen RPC to king.  Rob
  3261. rebooted king, and allspice went through recovery with aix, but the
  3262. reopen RPC remained hung.  I took a core file
  3263. (/home/ginger/cores/allspice.hang.king), which I will look at, and
  3264. rebooted.  Allspice was running the 1.111 kernel.
  3265.  
  3266. mike
  3267.  
  3268.  
  3269. Log-Number: 32291
  3270. Subject: more mysterious "disk full" messages
  3271. Date: Fri, 03 Apr 92 15:00:19 PST
  3272. From: Mike Kupfer <kupfer>
  3273.  
  3274. Covet and anarchy (running 1.111 and the Sprite server, respectively)
  3275. had problems within the past hour with messages like
  3276.  
  3277.   4/3/92 15:38:25 allspice (14) RmtFile "/sprite/admin/loginFailures"
  3278.     <10,82848> Write-back failed: out of disk space<40008>
  3279.  
  3280. despite the fact that "df" on allspice and on clients showed over 60MB
  3281. free on /.
  3282.  
  3283. The first time covet had this problem (a half hour ago, with
  3284. /sprite/admin/dump/dumplog), I ended up rebooting it.  The most recent
  3285. incident ended on both covet and anarchy with
  3286.  
  3287.   4/3/92 15:38:50 allspice (14) RmtFile "/sprite/admin/loginFailures"
  3288.     <10,82848> Write-back failed: stale handle
  3289.  
  3290. The syslog for allspice shows
  3291.  
  3292.   ClientCommand, return-attrs msg to client 89 file "spritehosts"
  3293.     <10,90619> failed 3000a
  3294.   ClientCommand, return-attrs msg to client 89 file "spritehosts"
  3295.     <10,90619> failed 3000a 
  3296.   Fri Apr  3 14:30:00 PST 1992
  3297.   Fsconsist_Close, ".fscheck.out" <4,4>: client 88 not last writer 14, was cached
  3298.   ConsistTimeout (1 minutes) client 88 write-back & invalidate file
  3299.     <10,82848> "loginFailures"
  3300.     Client state killed: 0 refs 0 write 0 exec
  3301.   FsrmtFileVerify: "loginFailures" <10,82848> client 88 not found
  3302.   Fsrmt_RpcWrite, stale handle <10,82848> client 88
  3303.   ConsistTimeout (1 minutes) client 89 write-back file <10,82848>
  3304.     "loginFailures" 
  3305.     Client state killed: 0 refs 0 write 0 exec
  3306.   FsrmtFileVerify: "loginFailures" <10,82848> client 89 not found
  3307.   Fsrmt_RpcWrite, stale handle <10,82848> client 89
  3308.  
  3309. Client 88 is covet, client 89 is anarchy.  Error 3000a is
  3310. RPC_SERVICE_DISABLED.  Similar "failed return-attrs" messages appear
  3311. in allspice's syslog dealing with raid1 and lust.  Note that the time
  3312. (15:38) in the messages is an hour off.  (Amazing that nobody has
  3313. submitted a bug report on that yet this Spring.  Either nobody's
  3314. noticed, or we've finally got our users trained to ignore it.  :-))
  3315.  
  3316. Is it possible that there is some sort of consistency problem where
  3317. the client gets back an erroneous "disk full" status?
  3318.  
  3319. mike
  3320.  
  3321.  
  3322. Log-Number: 32293
  3323. Subject: more on mysterious "disk full" messages
  3324. Date: Fri, 03 Apr 92 18:31:42 PST
  3325. From: Mike Kupfer <kupfer>
  3326.  
  3327. I started looking at the core file for the hang between allspice and
  3328. king, and one of the first things I stumbled onto was
  3329. fsconsistCache.c:EndConsistency().  It seems to assume that a
  3330. consistency action will fail only because the disk is full (or the
  3331. client is dead).  Aren't there other failure modes besides these two?
  3332.  
  3333. mike
  3334.  
  3335.  
  3336. Log-Number: 32294
  3337. From: mgbaker (Mary Gray Baker)
  3338. Subject: Re: more on mysterious "disk full" messages 
  3339. Date: Fri, 03 Apr 92 18:29:46 PST
  3340.  
  3341. John was talking about this earlier today.  Consistency can also fail
  3342. if a server does consistency to another machine, but can't get that machine's
  3343. reply because the server hasn't yet turned on its ability to accept RPCs from
  3344. other machines.  This can happen during boot.
  3345.  
  3346.  
  3347. Mary
  3348.  
  3349.  
  3350. Log-Number: 32295
  3351. Subject: Re: more on mysterious "disk full" messages 
  3352. Date: Fri, 03 Apr 92 18:46:10 PST
  3353. From: Mike Kupfer <kupfer>
  3354.  
  3355. Are write conflicts another possibility?  The first time today that
  3356. covet was getting bogus "disk full" messages it was (I think) trying
  3357. to write back /sprite/admin/dump/dumplog, which I had mistakenly tried
  3358. to edit from sage while covet was doing a "dump -t".  Poking around in
  3359. the old allspice syslog I see
  3360.  
  3361.   Fscache_Write: Alloc failed <10,10> "dumplog" DISK FULL
  3362.   Fsconsist_Close, "jhh" <10,2408>: client 83 not last writer 14, was
  3363.     cached 
  3364.   ConsistTimeout (1 minutes) client 88 write-back & invalidate file
  3365.     <10,72821> "dumplog" 
  3366.       Client state killed: 1 refs 1 write 0 exec
  3367.   FsrmtFileVerify: "dumplog" <10,72821> client 88 not found
  3368.   Fsrmt_RpcWrite, stale handle <10,72821> client 88
  3369.   FsReopenHandle: file "dumplog" <10,72821>: client 88 has dirty
  3370.     blocks, but client 33 is using 
  3371.  
  3372. mike
  3373.  
  3374.  
  3375. Log-Number: 32292
  3376. From: mgbaker (Mary Gray Baker)
  3377. Subject: Recovery problems
  3378. Date: Fri, 03 Apr 92 17:46:45 PST
  3379.  
  3380. Machines are waiting for recovery with the server, and when the server reboots
  3381. they are not getting their processes kicked alive again.  I will put some
  3382. logging in the recovery code to see what possible path through the code it
  3383. could be taking that it escapes this vital operation.  But I will probably
  3384. not do it for another week, since I need to finish this paper first.
  3385.  
  3386.  
  3387. Mary
  3388.  
  3389.  
  3390. Log-Number: 32299
  3391. Subject: function prototypes & mips cc: I spoke too soon
  3392. Date: Sun, 05 Apr 92 12:51:13 PDT
  3393. From: Mike Kupfer <kupfer>
  3394.  
  3395. I tried enabling function prototypes and compiling part of the Sprite
  3396. server on a DECstation.  It didn't work.  Apparently the MIPS compiler
  3397. gets confused if a function pointer (e.g., in a struct definition)
  3398. uses prototypes and (a) the prototype has multiple arguments and (b)
  3399. some argument other than the first uses a typedef.  In particular, the
  3400. compiler gags on the definition of writeProc in struct _file in
  3401. stdio.h.
  3402.  
  3403. So, my vote is to leave cfuncproto.h alone until MIPS fixes its
  3404. compiler.
  3405.  
  3406. mike
  3407.  
  3408.  
  3409. Log-Number: 32306
  3410. Subject: Re: Cleaning messages 
  3411. Date: Wed, 08 Apr 92 12:50:36 -0700
  3412. From: mendel@lagunita.stanford.edu
  3413.  
  3414.  
  3415. > Allspice's console has a lot of messages
  3416. > of the form:
  3417. >     Can't fetch handle for file xxxxx for cleaning
  3418. > where xxxxx is a 5 digit number.
  3419. > What does this mean?
  3420. > -- Jim M-S
  3421.  
  3422. During cleaning LFS reads in the segments being cleaned and identifies the
  3423. live contents and brings them into the file cache.  In order to bring
  3424. a block into the file cache LFS needs to fetch and/or create a local file
  3425. system file handle (Fsio_FileIOHandle) for the file.  It is possible
  3426. that the cleaning code finds the file handle locked when the fetch
  3427. occurs. Since blocking the segment cleaner can lead to deadlock the 
  3428. code has no choice but to skip over the file.  The current code also
  3429. prints the above message.  The 5 digit number is file number (i-number)
  3430. of the file being skipped over.  This message was more informative when
  3431. there was only one LFS file system. Without knowning the file system it is 
  3432. kinda hard to tell what is going on.
  3433.  
  3434. Note that if the segment cleaner skips over a file while cleaning the
  3435. segment can not mark as clean.  Part of the reason
  3436. for the message was to inform me that this had occured and the
  3437. system was doing work without generating clean segments. This
  3438. message appears much more frequently than I anticipated.  
  3439.  
  3440.     Mendel
  3441.  
  3442.  
  3443. Log-Number: 32312
  3444. Date: Wed, 8 Apr 92 18:54:56 -0700
  3445. From: dlong@cats.UCSC.EDU (Dean R. E. Long)
  3446. Subject: Re: lfs and swap1
  3447.  
  3448. > From kupfer@allspice.Berkeley.EDU Wed Apr  8 18:27:44 1992
  3449. > To: bugs@allspice.Berkeley.EDU
  3450. > Subject: lfs and swap1
  3451. > Date: Wed, 08 Apr 92 18:27:44 PDT
  3452. > From: Mike Kupfer <kupfer@allspice.Berkeley.EDU>
  3453. >
  3454. > Well, we just had another multi-minute pause while allspice cleaned
  3455. > /swap1.  Maybe we should start thinking about making /swap1 be an OFS
  3456. > instead of an LFS.
  3457. >
  3458. > mike
  3459. >
  3460. Maybe changing numSegsToClean in the superblock from 100 to something
  3461. smaller would make the pauses bearable.  The lfschkpt program can
  3462. be used to change that value.  I find it comes in handy on my
  3463. machine, since I have a small amount of memory.
  3464.  
  3465. dl
  3466.  
  3467.  
  3468. Log-Number: 32313
  3469. Subject: bogus name in ClientCommand printf
  3470. Date: Wed, 08 Apr 92 23:17:56 PDT
  3471. From: Mike Kupfer <kupfer>
  3472.  
  3473. When I restart the Sprite server on anarchy, I frequently see messages
  3474. in allspice's syslog like
  3475.  
  3476.   ClientCommand, return-attrs msg to client 89 file ",RCSt3480077" 
  3477.     <10,90523> failed 3000a
  3478.  
  3479. The name is bogus.  It's really complaining about /etc/spritehosts. 
  3480. Perhaps the name it's using is the name of the RCS temporary file that
  3481. was created the last time spritehosts was changed?  The link count on
  3482. spritehosts is 1, so that's no excuse.
  3483.  
  3484. mike
  3485.  
  3486.  
  3487. Log-Number: 32318
  3488. Subject: consistency problem: covet and allspice (really LFS problem?)
  3489. Date: Fri, 10 Apr 92 18:08:39 PDT
  3490. From: Mike Kupfer <kupfer>
  3491.  
  3492. >From covet's syslog:
  3493.  
  3494.   RpcDoCall: <write> RPC to allspice is hung
  3495.   Fri Apr 10 17:30:01 PDT 1992
  3496.   <write> RPC ok
  3497.   4/10/92 17:31:38 allspice (14) RmtFile "ds5000.md/lfsBlockIO.o"
  3498.     <2,106381>
  3499.   Write-back failed: stale handle
  3500.   4/10/92 17:31:38 allspice (14) - recovering handles
  3501.   Fsprefix_OpenCheck waiting for recovery
  3502.   4/10/92 17:31:51 allspice (14) Recovery complete 737 handles
  3503.     reopened 241 failed reopens
  3504.  
  3505. >From allspice's syslog:
  3506.  
  3507.   /user2: Cleaning started - deficit 95 segs
  3508.   ConsistTimeout (1 minutes) client 88 write-back file <2,106381> "lfsBlockIO.o" 
  3509.     Client state killed: 0 refs 0 write 0 exec
  3510.   Fri Apr 10 17:30:01 PDT 1992
  3511.   ConsistTimeout (1 minutes) client 75 write-back file <2,66858> "fscacheBlocks.o" 
  3512.     Client state killed: 0 refs 0 write 0 exec
  3513.   /user2: Cleaned 160 segments in 40 segments
  3514.   /sprite/src/kernel: Cleaning started - deficit 60 segs
  3515.   /sprite/src/kernel: Cleaned 66 segments in 6 segments
  3516.   /sprite/src/kernel: Cleaning started - deficit 1 segs
  3517.   FsrmtFileVerify: "lfsBlockIO.o" <2,106381> client 88 not found
  3518.   Fsrmt_RpcWrite, stale handle <2,106381> client 88
  3519.   FsrmtFileVerify: "fscacheBlocks.o" <2,66858> client 75 not found
  3520.   Fsrmt_RpcWrite, stale handle <2,66858> client 75
  3521.   4/10/92 17:31:37 covet (88) initiating recovery
  3522.   Fscache_BlockRead: Giving zeros to "lfsBlockIO.o" <2,106381> block 17 amount 88031
  3523.   Fscache_BlockRead: Giving zeros to "fscacheBlocks.o" <2,66858> block 6 amount 74208
  3524.  
  3525.   (plus lots lines about more giving zeros to the two files)
  3526.  
  3527. Allspice is running the cmtice kernel.  Covet is running 1.111.  The
  3528. other ConsistTimeout was with tyranny, which I ended up rebooting
  3529. because it was hanging migd requests.
  3530.  
  3531. The reason I noticed this is that ld eventually gagged when it tried
  3532. to make the corresponding module .o file.
  3533.  
  3534. So was covet trying to write to /user2, which then hung all writes to
  3535. allspice, causing the write-back to fail?
  3536.  
  3537. mike
  3538.  
  3539.  
  3540. Log-Number: 32320
  3541. Subject: munged RCS files
  3542. Date: Sun, 12 Apr 92 15:54:41 PDT
  3543. From: Mike Kupfer <kupfer>
  3544.  
  3545. /sprite/src/boot/diskBoot.OpenProm/RCS/{fsDisk,devConfig}.c,v are
  3546. broken.  The former is a makefile fragment, and the latter is a
  3547. formatted man page.
  3548.  
  3549. mike
  3550.  
  3551.  
  3552. Log-Number: 32328
  3553. Subject: ds5000 vm usage bug
  3554. Date: Wed, 15 Apr 92 17:56:40 -0400
  3555. From: Fred Douglis <douglis@MITL.COM>
  3556.  
  3557. It seems that the decstations report VM usage improperly: they lose
  3558. track of memory allocated via Vm_BootAlloc.  This is because vmMemEnd
  3559. is incremented, by Vm_BootAlloc, then reset to the start of "dynamic
  3560. memory", and then later on the value of &end is used instead of the
  3561. previous value of vmMemEnd.  
  3562.  
  3563. I wanted to fix this, so I made a quick patch to save vmMemEnd in
  3564. another variable, but this variable is kept in the machine-independent
  3565. area so the fix isn't terribly clean.  (But then again, neither are
  3566. all the places in VM that have #ifdef's depending on machine type and
  3567. which promise to be temporary :-).  Plus, I've made other changes
  3568. since the last time I checked in these sources, so it would be hard to
  3569. generate a patch for you.  However, I'll do it if anyone cares to fix
  3570. this bug in your sources and it's not immediately apparent how to do so.
  3571.  
  3572. Fred
  3573.  
  3574.  
  3575. Log-Number: 32329
  3576. Subject: fsstat confusion
  3577. Date: Wed, 15 Apr 92 19:02:35 PDT
  3578. From: Mike Kupfer <kupfer>
  3579.  
  3580.  
  3581. Most of the Sprite server's file activity right now is from paging. 
  3582. This leads to some outrageous percentage numbers from fsstat.  While
  3583. tracking down these numbers, I'm having problems understanding just
  3584. what fsstat is trying to tell me.
  3585.  
  3586. The first WRITES number (Fs_BlockCacheStats.writeAccesses): this
  3587. counter is maintained by Fscache_Write and appears to be the number of
  3588. blocks that were dirtied.
  3589.  
  3590. The first WRITETHRU number (Fs_BlockCacheStats.dataBlocksWrittenThru):
  3591. this counter is maintained by Fscache_GetDirtyBlock and appears to be
  3592. the number of blocks that were cleaned.
  3593.  
  3594. Question #1. Why is the WRITETHRU number greater than the WRITES
  3595. number on allspice, lust, and oregano?  This doesn't hold for any of
  3596. the clients I checked (oregano has /scratch1 on it, so it's not a
  3597. simple client).  When LFS calls Fscache_GetDirtyBlock, does that block
  3598. get cleaned then, or can there be multiple Fscache_GetDirtyBlock calls
  3599. for the same dirty block (e.g., descriptor)?  Alternatively, is there
  3600. some path in LFS that goes through Fscache_GetDirtyBlock but not
  3601. Fscache_Write?
  3602.  
  3603. The WRITETHRU vm number (vmBlocksWritten): this counter is maintained
  3604. by VmPageServerWrite and appears to be the number of VM blocks that
  3605. were cleaned (i.e., actually written out to disk or to a server).
  3606.  
  3607. Question #2. What is the percentage figure that appears after the vm
  3608. number?  It is computed as
  3609.  
  3610.     vmBlocksWritten
  3611.     ---------------  x 100
  3612.     writeAccesses
  3613.  
  3614. However, the VM traffic is not included in the (writeAccesses) cache
  3615. statistics, so this computation doesn't yield a valid percentage.  I
  3616. suppose you could argue that it just represents a ratio of VM traffic
  3617. to file traffic, but (a) wouldn't it make more sense to compare VM
  3618. traffic with actual file system traffic (blocksWrittenThru) instead? 
  3619. And (b) I think it's dangerous to express a non-percentage on the same
  3620. line with a bunch of numbers that (I think) *are* valid percentages.
  3621.  
  3622. Byte traffic statistics: the percentage figures in the "Mb Read" and
  3623. "Mb Write" are computed as
  3624.  
  3625.          foo
  3626.     -------------  x 100
  3627.     cache traffic
  3628.  
  3629. where "foo" is remote traffic, disk file traffic, or disk descriptor
  3630. traffic.
  3631.  
  3632. Question #3.  Are these numbers supposed to be real percentages?  Not
  3633. all remote traffic goes through the cache (for example, covet reports
  3634. that remote writes account for 107%; I guess it's been paging a lot). 
  3635. Does the "raw disk" (descriptor) traffic go through the cache? 
  3636. (Allspice has reported that the raw disk writes account for 105%, but
  3637. maybe that's from the same bug in Question #1.)
  3638.  
  3639. mike
  3640.  
  3641.  
  3642. Log-Number: 32330
  3643. Subject: blocksPitched comment in fsStat.h
  3644. Date: Wed, 15 Apr 92 20:28:12 PDT
  3645. From: Mike Kupfer <kupfer>
  3646.  
  3647.     unsigned int blocksPitched;        /* The number of blocks that were
  3648.                      * thrown out at the command of
  3649.                      * virtual memory. */
  3650.  
  3651. When I saw this I thought it had to do with the VM module asking the
  3652. FS module for memory.  What it really means is that the FS or VM
  3653. module figured out that a block in the FS cache was duplicating a VM
  3654. page, so the block got stuck at the front of the cache's LRU list, so
  3655. that it would get reclaimed quickly.
  3656.  
  3657. Does
  3658.     unsigned int blocksPitched;        /* The number of blocks thrown
  3659.                      * out because they duplicated
  3660.                      * VM-managed blocks. */
  3661.  
  3662. sound okay to everyone?
  3663.  
  3664. The man page for fsstats needs fixing, too.
  3665.  
  3666. mike
  3667.  
  3668.  
  3669. Log-Number: 32332
  3670. From: mgbaker (Mary Gray Baker)
  3671. Subject: Recent allspice crashes
  3672. Date: Thu, 16 Apr 92 17:55:31 PDT
  3673.  
  3674. The recent allspice crashes appear to be due to a window underflow trap
  3675. after all the register windows have been saved to the stack.  To save all
  3676. the windows to the stack, it calls FlushTheWindows(n) recursively for
  3677. NUM_WINDOWS - 1 times.  On unroling from this, it is getting a window
  3678. underflow.  I don't know any more than this yet, because most of the
  3679. stack information gets blown away, but I'll investigate next time it happens.
  3680.  
  3681. Alternatively, since this is in the experimental kernel being run by the
  3682. 252 students, maybe we don't need to worry about it.
  3683.  
  3684.  
  3685. Mary
  3686.  
  3687.  
  3688. Log-Number: 32335
  3689. Subject: Re: More allspice crashes 
  3690. Date: Fri, 17 Apr 92 10:56:22 -0700
  3691. From: mendel@lagunita.stanford.edu
  3692.  
  3693.  
  3694. > Since Bob's message there have been two more Allspice crashes with the
  3695. > same error (read from clean segment).  I took a core dump of one of them
  3696. > in /home/ginger/cores/allspice.4.17.  Can someone take a look at this
  3697. > ASAP to see what disk is failing?  I think we need to take action to
  3698. > clean up the offending disk or else Allspice is going to keep crashing.
  3699. > Also, I think we need to get out a new kernel that prints out the
  3700. > name of the problem partition when errors like this occur, so we can
  3701. > know immediately what disk is having problems.
  3702.  
  3703.     Yes.  
  3704. > By the way, I rebooted the 1.112 kernel instead of cmtice, so that
  3705. > we'd be able to debug from ginger.  The core dump was made from the
  3706. > 1.112 kernel.
  3707. >                     -John-
  3708.  
  3709. Executive summary: The problem has been fixed.  
  3710.  
  3711.  
  3712. The problem was a swap file from sage (/swap1/33/79) had a block in a segment 
  3713. (984) on /swap1 marked as clean.   Sage was trying to BlockCopy this block
  3714. which caused the read-from-clean-segement trap. Every time allspice rebooted
  3715. sage would retry the request that caused the error.
  3716.  
  3717. The problem somewhat fixed itself because sage appears to have died.  I 
  3718. truncated the file with a (cp /dev/null /swap1/33/79) command fix the
  3719. on disk structure. Note that this command has the effect on putting 
  3720. allspice into the debugger when it detects the delete from a clean 
  3721. segment.  I was careful to have a window open to allspice with a 
  3722. "kmsg -c allspice" ready to do with I typed the command.  
  3723.  
  3724. The file /swap1/63/130, a swap file from sabotage, had a similar problem.
  3725. A single block was in a clean segment (498).  I fixed the on disk format
  3726. in the same way as before.  Looks like there is a problem with segment 
  3727. numbers containing 4, 9, and 8.  It also may be related to the use of
  3728. emacs on these machines (sage and sabotage). 
  3729.  
  3730. I can think of two possible causes of this problem.  The first is that
  3731. a segment is being marked as clean without the cleaning being run on
  3732. it.  This seems highly unlikely to me.    The second is that the cleaning
  3733. is not cleaning as well as it should. In other words, it is skipping over
  3734. still alive blocks in a segment.  
  3735.  
  3736. I looked at the segments 498 and 984.  Nothing looked unusual about the
  3737. segments.  File /swap1/33/79 had length 8192 and segment 984 contained only
  3738. block 1 (4096-8192) of the file.  Segment 498 was written with two 
  3739. blocks of /swap1/63/130, the block in error (34) and the first indirect
  3740. block of the file.  
  3741.  
  3742. Something happen so these blocks either weren't detected by the segment
  3743. cleaner or were not written out was part of segment cleaning.  This
  3744. is a nasty bug.  It can account for most if not all of the errors seen.
  3745.  
  3746.     Mendel
  3747.  
  3748.  
  3749. Log-Number: 32338
  3750. Subject: recovery deadlock, migd hang
  3751. Date: Sun, 19 Apr 92 16:27:03 PDT
  3752. From: Mike Kupfer <kupfer>
  3753.  
  3754. When I came in this afternoon, rup claimed that a bunch of machines
  3755. were down.  This was a lie--the problem was that their migds were all
  3756. hung trying to talk to the migd on sedition.
  3757.  
  3758. The reason sedition was hung was that it had deadlocked itself trying
  3759. to do recovery after allspice rebooted.
  3760.  
  3761. There were a bunch of processes with a call stack that ended with
  3762.  
  3763.   #0  0xf600c5c0 in Mach_ContextSwitch ()
  3764.   #1  0xf60b9b6c in SyncEventWaitInt (...) (...)
  3765.   #2  0xf60b8d5c in Sync_SlowWait (...) (...)
  3766.   #3  0xf60a4840 in Proc_Lock (
  3767.       procPtr=(struct Proc_ControlBlock *) 0xf64726c8) 
  3768.       (procTable.c line 408)
  3769.   #4  0xf609cd14 in Proc_WakeupAllProcesses () (procMisc.c line 988)
  3770.   #5  0xf606112c in Fsutil_Reopen (...) (...)
  3771.  
  3772. There were all trying to lock pid 14443, which was a new RPC server
  3773. that was still being created.
  3774.  
  3775.       ID   wtd       user     kernel    event    state   name
  3776.    14443     0 [0,     0] [0,     0] ffffffff      new Rpc_Server
  3777.  
  3778. Its parent was hung waiting for swap to come back.  That it, it was
  3779. doing a Sync_Wait on swapDownCondition.
  3780.  
  3781.   #0  0xf600c5c0 in Mach_ContextSwitch ()
  3782.   #1  0xf60b9b6c in SyncEventWaitInt (...) (...)
  3783.   #2  0xf60b8d5c in Sync_SlowWait (...) (...)
  3784.   #3  0xf60c7614 in DoPageAllocate (
  3785.       virtAddrPtr=(struct Vm_VirtAddr *) 0xf8011c08, flags=1) 
  3786.       (vmPage.c line 1006)
  3787.   #4  0xf60c7708 in VmPageAllocate (
  3788.       virtAddrPtr=(struct Vm_VirtAddr *) 0xf8011c08, flags=1) 
  3789.       (vmPage.c line 1048)
  3790.   #5  0xf60cdab4 in Vm_GetKernelStack (...) (...)
  3791.   #6  0xf600d9e4 in Mach_SetupNewState (...) (...)
  3792.   #7  0xf609753c in Proc_NewProc (...) (...)
  3793.   #8  0xf60ac018 in Rpc_CreateServer (...) (...)
  3794.   #9  0xf60abf10 in Rpc_Daemon (...) (...)
  3795.   #10 0xf60b5538 in Sched_StartKernProc (...) (...)
  3796.  
  3797. Unfortunately, the broadcast on swapDownCondition is done (indirectly)
  3798. by Fsutil_Reopen, after Proc_WakeupAllProcesses completes.
  3799.  
  3800. So it seems like either
  3801.  
  3802.   (a) Proc_WakeupAllProcesses needs to be smarter about locked
  3803.       processes 
  3804.  
  3805. or
  3806.  
  3807.   (b) Fsutil_Reopen should call Vm_Recovery before it calls
  3808.       Proc_WakeupAllProcesses.
  3809.  
  3810. mike
  3811.  
  3812.  
  3813. Log-Number: 32374
  3814. Subject: Re: recovery deadlock, migd hang
  3815. Date: Wed, 29 Apr 92 11:54:26 PDT
  3816. From: Mike Kupfer <kupfer>
  3817.  
  3818. > So it seems like either
  3819. >   (a) Proc_WakeupAllProcesses needs to be smarter about locked
  3820. >       processes 
  3821. > or
  3822. >   (b) Fsutil_Reopen should call Vm_Recovery before it calls
  3823. >       Proc_WakeupAllProcesses.
  3824.  
  3825. I forgot a third possibility, which is for Proc_NewProc to unlock the
  3826. child's PCB earlier than it does now.
  3827.  
  3828. [This is a followup to a bug report that will be in tomorrow's list,
  3829. so don't worry if it doesn't make sense out of context.]
  3830.  
  3831. mike
  3832.  
  3833.  
  3834. Log-Number: 32339
  3835. Subject: makedepend and cross-compiling
  3836. Date: Sun, 19 Apr 92 22:55:18 PDT
  3837. From: Mike Kupfer <kupfer>
  3838.  
  3839. Unfortunately, running makedepend is currently not a
  3840. machine-independent activity.  This is because of the links in
  3841. /sprite/src/kernel/Include that point to $MACHINE.md/mumble.  So user
  3842. programs that include <kernel/foo.h> get the foo.h for the machine
  3843. that makedepend is running on, not the target machine's foo.h.  This
  3844. causes problems if foo.h doesn't exist for all machine types. 
  3845. Example: devAddrs.h.
  3846.  
  3847. These links were all put in in mid-November by Bob.  Maybe they were
  3848. put in for use with imake?
  3849.  
  3850. mike
  3851.  
  3852.  
  3853. Log-Number: 32342
  3854. Subject: /etc/exports, unfsd
  3855. Date: Mon, 20 Apr 92 20:22:54 PDT
  3856. From: Mike Kupfer <kupfer>
  3857.  
  3858. Is anyone still mounting Sprite filesystems via unfsd?
  3859.  
  3860. I ask for two reasons.  One is that /etc/exports lists a slew of
  3861. filesystems that no longer exist.  Two is that /etc/exports exports
  3862. the filesystems to the entire world.  This is apparently one of the
  3863. backdoors that the intruder has been using to crack into SunOS
  3864. systems.  I don't know if the same tricks can be used to break into
  3865. Sprite, but it would probably be a good idea to close the door anyway.
  3866. (Unfortunately, it's hard to tell what security mechanisms unfsd uses.
  3867. There's little documentation, the code is obscure, and the test case I
  3868. tried from a Postgres machine failed for reasons apparently unrelated
  3869. to security checks.)
  3870.  
  3871. So, option 1 is to turn off unfsd.
  3872.  
  3873. Option 2 is to clean up /etc/exports and leave unfsd running.
  3874.  
  3875. Votes, anyone?
  3876.  
  3877. mike
  3878.  
  3879. [30-Apr-92: Jim will fix up /etc/exports. -mdk] 
  3880.  
  3881.  
  3882. Log-Number: 32344
  3883. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  3884. Date: Tue, 21 Apr 1992 14:39:18 PDT
  3885. Subject: bash/compatibility problems
  3886.  
  3887.  
  3888. When I try to run /usr/sww/bin/bash on a ds5000 I get the following
  3889. messages on my console. The kernel I'm running is equivalent to
  3890. ds5000.1.112.
  3891.  
  3892. Sig_SigvecStub: bad signal 5
  3893. Sig_SigvecStub: bad signal 5
  3894. Sig_SigvecStub: bad signal 11
  3895. Sig_SigvecStub: bad signal 11
  3896. Sig_SigvecStub: bad signal 5
  3897.  
  3898.  
  3899. John
  3900.  
  3901.  
  3902. Log-Number: 32346
  3903. Date: Wed, 22 Apr 92 14:56:36 PDT
  3904. From: shirriff (Ken Shirriff)
  3905. Subject: Allspice crash
  3906.  
  3907. Allspice wedged up last night.  It wouldn't respond to L1-anything, but
  3908. it seemed to respond to pings for some reason.  Since there wasn't
  3909. anything that could be done with it, I rebooted it.  I used the new kernel
  3910. since I didn't see a note specifying a different one.  Jim says he was
  3911. using Jaquith heavily at the time of the crash, so that might be a cause.
  3912.  
  3913.  
  3914. Log-Number: 32348
  3915. Subject: Re: Allspice watchdog reset 
  3916. Date: Thu, 23 Apr 92 11:06:09 -0700
  3917. From: mendel@lagunita.stanford.edu
  3918.  
  3919.  
  3920. > Allspice panic'd and got a watchdog reset running the cmtice kernel.
  3921. > There were no informative error messages on the console
  3922. > so I rebooted with the cmtice kernel.
  3923. > -- Jim M-S
  3924.  
  3925. One of the easiest ways to get a watchdog reset is to run off the end of
  3926. a kernel stack.
  3927. You might want to check the cmtice kernel for large objects (i.e. buffers)
  3928. being allocated on the stack.  Since disk tracing mods are made in 
  3929. routines near the bottom of the call tree, it is possible that they are
  3930. trying to push one byte too many on to the kernel stack.
  3931.  
  3932.     Mendel
  3933.  
  3934.  
  3935. Log-Number: 32351
  3936. Date: Thu, 23 Apr 92 16:04:17 PDT
  3937. From: elm (ethan miller)
  3938. Subject: ethernet packet problem?
  3939.  
  3940. Whenever I run FrameMaker on joyride (xhosted to terrorism), I get a
  3941. CRC error and/or framing error with each packet the FrameMaker
  3942. application sends to terrorism's X server.  This slows things down a
  3943. great deal.  Everything still works, but much more slowly.  Is there
  3944. any reason that the "LE ethernet: Received packet with CRC error"
  3945. messages are printed out?  It'd probably make things run much faster
  3946. if these weren't sent to the syslog.
  3947.  
  3948. Alternatively, does anyone want to find out why the sun4c kernel
  3949. believes that there's a CRC error and/or framing error in most
  3950. FrameMaker packets?
  3951.  
  3952. This bug is definitely repeatable on my machine.  It's happened every
  3953. time I've used Frame.
  3954.  
  3955. ethan
  3956.  
  3957.  
  3958. Log-Number: 32352
  3959. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  3960. Date: Thu, 23 Apr 1992 16:15:30 PDT
  3961. Subject: Re: ethernet packet problem?
  3962.  
  3963. As far as I've been able to tell the CRC errors and framing errors
  3964. actually exist and are not figments of Sprite's imagination.  SunOs
  3965. et al. do not print out these messages, therefore our complaints
  3966. to the powers-that-be go unheeded because "normal" machines don't
  3967. show any symptoms.  I think we should probably tone down the error
  3968. messages, so they are printed only infrequently. 
  3969.  
  3970. John
  3971.  
  3972.  
  3973. Log-Number: 32359
  3974. Subject: permissions problems, cruft in /sprite/src/kernel
  3975. Date: Fri, 24 Apr 92 10:45:01 PDT
  3976. From: Mike Kupfer <kupfer>
  3977.  
  3978. sage-1# cd /sprite/src/kernel
  3979. sage-2# ls -l dev/ds5000.md/devSCSIC90.c lfs/lfsStats.h \
  3980.   main/ds3100.md/mainInit.c main/main.h main/ds5000.md/mainInit.c \
  3981.   main/sun3.md/mainInit.c main/sun4.md/mainInit.c main/sun4.md/stub.c 
  3982. -rw-rw-r--  1 root        41097 Mar 12 22:50 dev/ds5000.md/devSCSIC90.c
  3983. -rw-rw-r--  1 mgbaker     11098 Apr  1 15:35 lfs/lfsStats.h
  3984. -rw-rw-r--  1 jhh         12460 Nov  4 12:55 main/ds3100.md/mainInit.c
  3985. -rw-rw-r--  1 jhh         12635 Nov  4 12:55 main/ds5000.md/mainInit.c
  3986. -rw-rw-r--  1 jhh          1254 Nov  4 12:55 main/main.h
  3987. -rw-rw-r--  1 jhh         11546 Nov  4 12:55 main/sun3.md/mainInit.c
  3988. -rw-rw-r--  1 jhh         11567 Nov  4 12:55 main/sun4.md/mainInit.c
  3989. -rw-rw-r--  1 jhh             0 Nov  4 12:55 main/sun4.md/stub.c
  3990.  
  3991. I assume I should delete stub.c and chmod the remaining files to 444.
  3992. Any objections?
  3993.  
  3994. mike
  3995.  
  3996.  
  3997. Log-Number: 32360
  3998. Subject: lust reboot due to dementia
  3999. Date: Fri, 24 Apr 92 11:09:05 PDT
  4000. From: Mike Kupfer <kupfer>
  4001.  
  4002. The nfsmount's on lust seemed to be screwed up this morning, and I
  4003. couldn't rlogin in.  When I checked at the console, there was a
  4004. funny-looking root prompt, and the hostname command didn't work.  I
  4005. tried logging out so that I could log in as myself, but I never got a
  4006. new login prompt.  At that point I reset lust and rebooted it.
  4007.  
  4008. mike
  4009.  
  4010.  
  4011. Log-Number: 32361
  4012. Subject: yet another allspice hang
  4013. Date: Fri, 24 Apr 92 11:12:20 PDT
  4014. From: Mike Kupfer <kupfer>
  4015.  
  4016. Allspice hung for no apparent reason.  I rebooted with the new (1.112)
  4017. kernel, under the assumption that the recent rash of hangs is related
  4018. to the cmtice kernel.
  4019.  
  4020. By the way, I tried putting allspice into the debugger from ginger,
  4021. but I got told that -d wasn't a valid option for kmsg.
  4022.  
  4023. mike
  4024.  
  4025. [30-Apr-92: Mary will see if Dean Long has a kmsg that supports -d and
  4026. runs on SunOS. -mdk] 
  4027.  
  4028.  
  4029. Log-Number: 32363
  4030. Date: Fri, 24 Apr 92 12:18:59 PDT
  4031. From: voelker (Geoffrey M. Voelker)
  4032. Subject: arson
  4033.  
  4034.  
  4035. arson seems to be a little handicapped lately.  I found it in the
  4036. monitor, and someone had tried to reboot it but was getting ECC errors.
  4037. I did an `init' and tried to reboot it myself, but got more ECC errors.
  4038.  
  4039. Could this be just because of heat?  608-4 is warm, but not exceptionally
  4040. so.
  4041.  
  4042. -geoff
  4043.  
  4044. [30-Apr-92: the workaround for this is to turn the machine off and
  4045. wait a few minutes before turning it on again. -mdk]
  4046.  
  4047.  
  4048. Log-Number: 32366
  4049. Date: Sat, 25 Apr 92 14:22:46 PDT
  4050. From: shirriff (Ken Shirriff)
  4051. Subject: Allspice wedged up on cleaning
  4052.  
  4053. Allspice seemed to go into an infinite clean cycle on /swap1.
  4054. it cleaned /swap1 for about 10 minutes, printed:
  4055. FscacheGetDirtyFile skipping deleted file <0,27973> "16"
  4056. for 5 minutes and then went back to cleaning /swap1.  Since it wasn't making
  4057. any progress I rebooted.
  4058.  
  4059.  
  4060. Log-Number: 32369
  4061. Date: Sun, 26 Apr 92 12:12:15 PDT
  4062. From: voelker (Geoffrey M. Voelker)
  4063. Subject: lust
  4064.  
  4065.  
  4066. Lust seemed to be wedged around noon today.  There was a series of about
  4067. 13 messages of the form:
  4068.  
  4069. *** compat: unknown errno value 262144
  4070.  
  4071. Before I went in to check the machines I had noticed that piracy had
  4072. a series of messages about someone failing to open `netroute.new'...
  4073. possibly the two are related.
  4074.  
  4075. I don't know why lust would have been wedged.
  4076.  
  4077. I rebooted lust with the cmtice kernel.
  4078.  
  4079. -geoff
  4080.  
  4081.  
  4082. Log-Number: 32370
  4083. Subject: Re: lust 
  4084. Date: Sun, 26 Apr 92 12:52:05 PDT
  4085. From: Mike Kupfer <kupfer>
  4086.  
  4087. > Lust seemed to be wedged around noon today.  There was a series of about
  4088. > 13 messages of the form:
  4089. > *** compat: unknown errno value 262144
  4090.  
  4091. This error message comes from the routine that maps a UNIX errno value
  4092. to a Sprite ReturnStatus (Compat_MapToSprite).  It looks like somebody
  4093. is passing in a value that is already a ReturnStatus (FS_NO_ACCESS).
  4094.  
  4095. mike
  4096.  
  4097.  
  4098. Log-Number: 32372
  4099. Subject: mysterious migd deaths
  4100. Date: Sun, 26 Apr 92 22:22:49 PDT
  4101. From: Mike Kupfer <kupfer>
  4102.  
  4103. There seems to be an annoying problem lately where migd's get hung or
  4104. die on a client and have to be manually restarted.  When I came in
  4105. this afternoon (around 1645), for example, I had to restart migd on 4
  4106. or 6 machines.  The migd logs for the machines in question frequently
  4107. ended with messages like 
  4108.  
  4109.   Error 5 writing to global daemon: I/O error.
  4110.   Error 1 writing to global daemon: not owner.
  4111.   2121e: terminated by order of global daemon... should be restarted soon.
  4112.   terminated by order of global daemon.
  4113.  
  4114. or
  4115.  
  4116.   Error 5 writing to global daemon: I/O error.
  4117.   Error 5 writing to global daemon: I/O error.
  4118.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: I/O error
  4119.   Error 5 writing to global daemon: I/O error.
  4120.   This host is being reclaimed by order of global migration daemon.
  4121.   This host is being reclaimed by order of global migration daemon.
  4122.   This host is being reclaimed by order of global migration daemon.
  4123.   This host is being reclaimed by order of global migration daemon.
  4124.  
  4125. or 
  4126.  
  4127.   Error 5 writing to global daemon: I/O error.
  4128.   Error 22 writing to global daemon: invalid argument.
  4129.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: I/O error
  4130.   Error 5 writing to global daemon: I/O error.
  4131.   Error 5 writing to global daemon: I/O error.
  4132.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: invalid argument
  4133.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: invalid argument
  4134.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: invalid argument
  4135.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: invalid argument
  4136.   Migd_Init - Unable to contact master of global pdev: operation would block
  4137.   Exiting.
  4138.  
  4139. mike
  4140.  
  4141.  
  4142. Log-Number: 32373
  4143. Subject: allspice ran out of memory
  4144. Date: Mon, 27 Apr 92 15:18:21 PDT
  4145. From: Mike Kupfer <kupfer>
  4146.  
  4147.   /jaquith: Cleaning started - deficit 217 segs
  4148.   Fatal Error: VmMach_DMAAlloc: unable to satisfy request for 131072
  4149.     bytes at 0xf66c3948
  4150.  
  4151. We rebooted the 1.112 (new) kernel.
  4152.  
  4153. mike
  4154.  
  4155.  
  4156. Log-Number: 32375
  4157. Subject: serious cleaning overload on allspice
  4158. Date: Wed, 29 Apr 92 15:23:32 PDT
  4159. From: Mike Kupfer <kupfer>
  4160.  
  4161. Allspice got into a mode where it was continually cleaning /swap1. 
  4162. Excerpts from allspice's syslog are below.  This appears to have been
  4163. caused by a runaway IP server on arson that had ballooned up and was
  4164. paging like crazy.
  4165.  
  4166. mike
  4167.  
  4168. [syslog excerpt deleted -mdk]
  4169.  
  4170.  
  4171. Log-Number: 32376
  4172. Date: Wed, 29 Apr 92 16:04:51 PDT
  4173. From: pmchen (Peter M. Chen)
  4174. Subject: Re: serious cleaning overload on allspice
  4175.  
  4176. Dunno if this is relevant to the /swap1 problems, but some random user
  4177. "digres" on clove was doing thrashing clove.  Here's the ps from clove:
  4178.  
  4179. digres   4391c  1.7 28.6 53640  9364 READY   0:20    kimtables 
  4180. digres   a3949  1.7 30.6110508 10032 READY   0:37    kimtables 
  4181.  
  4182. This was about 3:30pm.
  4183.  
  4184. Pete
  4185.  
  4186.  
  4187. Log-Number: 32378
  4188. Date: Sat, 2 May 92 18:44:40 PDT
  4189. From: dlong (Dean R. E. Long)
  4190. Subject: negative uid's
  4191.  
  4192. "chown nobody filename" and "su nobody" don't seem to work.
  4193. Some things think a uid is a short, while others think it's
  4194. an int.  Problably others think it's an unsigned short.
  4195.  
  4196. dl
  4197.  
  4198.  
  4199. Log-Number: 32395
  4200. Date: Fri, 8 May 92 12:54:44 PDT
  4201. From: mottsmth (Jim Mott-Smith)
  4202. Subject: pcs messed up
  4203.  
  4204.  
  4205. /pcs, which had a hard error a few days back seems
  4206. to be messed up. 
  4207.  
  4208. Trying to delete ~decman/access/shar.file hangs your xterm.
  4209.  
  4210. -- Jim M-S
  4211.  
  4212.  
  4213. Log-Number: 32414
  4214. Subject: hung RPCs due to /pcs
  4215. Date: Thu, 14 May 92 15:23:49 PDT
  4216. From: Mike Kupfer <kupfer>
  4217.  
  4218. I'm beginning to suspect that many of the recent problems can be
  4219. attributed to /pcs.  I put sage into the debugger, and the reason it's
  4220. got a hung RPC is that it's trying to do a write to /pcs.  Rebooting
  4221. lust doesn't completely fix the RPCs, because the clients will try to
  4222. write back the same dirty /pcs blocks when lust comes back.
  4223.  
  4224. I think the reason that random machines are being affected is that
  4225. none of the people using /pcs actually runs Sprite these days, so they
  4226. rlogin onto Sprite machines to do their dirty work.  Also, a bunch of
  4227. people's home directories are in /pcs, so if they get mail, the
  4228. sendmails generate RPCs that hang.  I suspect that over time things
  4229. get more and more gummed up until something fails completely.
  4230.  
  4231. I vote to let things go for right now, but to disable the prefix
  4232. command for /pcs, so that when we eventually have to reboot lust, the
  4233. problems will (I hope) go away.
  4234.  
  4235. mike
  4236.  
  4237.  
  4238. Log-Number: 32382
  4239. Date: Sun, 3 May 92 17:10:19 PDT
  4240. From: shirriff (Ken Shirriff)
  4241. Subject: tar failed during dumps: long name
  4242.  
  4243. The weekly dumps hung due to the following:
  4244. dumping /local
  4245. skipping 1 files
  4246. position = 2317401
  4247. execing tar ncbfTPL 128 - -
  4248. successfully forked tar
  4249. Assertion failed: (dp->d_namlen <= 255) line 69 of "readdir.c"
  4250.  
  4251. Ken
  4252.  
  4253.  
  4254. Log-Number: 32384
  4255. Date: Mon, 4 May 92 07:45:39 PDT
  4256. From: bmiller (Bob Miller)
  4257. Subject: Lust hung
  4258.  
  4259.  
  4260. Lust was in the debugger this morning...
  4261.  
  4262. TLB LS miss exception at PC 0x800a85a4
  4263.  
  4264.  
  4265. I rebooted.
  4266.  
  4267.  
  4268.  
  4269. Bob
  4270.  
  4271.  
  4272. Log-Number: 32385
  4273. Date: Mon, 4 May 92 07:58:52 PDT
  4274. From: bmiller (Bob Miller)
  4275. Subject: oops
  4276.  
  4277.  
  4278. There was a typo in my message about Lust.
  4279.  
  4280. Should have been TLB LD (not LS) miss exception...
  4281.  
  4282.  
  4283.  
  4284. Bob
  4285.  
  4286.  
  4287. Log-Number: 32388
  4288. From: mgbaker (Mary Gray Baker)
  4289. Subject: Allspice and sendmail
  4290. Date: Wed, 06 May 92 15:53:00 PDT
  4291.  
  4292. John and I have been restarting all the servers on allspice repeatedly today.
  4293. A lot of mail has not been getting through.  Does anybody know what the
  4294. problem is or why it got particularly bad today?  If allspice appears to
  4295. be down every time remote mailers contact it, mail may not get through
  4296. for quite a while.
  4297.  
  4298.  
  4299. Mary
  4300.  
  4301. [28-May-92: the hypothesis is that allspice was suffering from the ftp
  4302. load induced by a new Tk release. -mdk]
  4303.  
  4304.  
  4305. Log-Number: 32389
  4306. Subject: lust crash: packet too large
  4307. Date: Wed, 06 May 92 16:38:44 PDT
  4308. From: Mike Kupfer <kupfer>
  4309.  
  4310. Lust died with
  4311.  
  4312.   Fatal Error: OutputPacket: packet too large (4174)
  4313.  
  4314. This message was preceded by a couple "Too many collisions" messages. 
  4315.  
  4316. mike
  4317.  
  4318.  
  4319. Log-Number: 32391
  4320. Date: Thu, 7 May 92 08:05:48 PDT
  4321. From: bmiller (Bob Miller)
  4322. Subject: allspice
  4323.  
  4324.  
  4325. Allspice was down when I came in this morning.  It appeared to be a
  4326. cleaning error on /swap1 (I just caught a brief look a the screen
  4327. before the 'entering debugger' message scrolled it off).
  4328.  
  4329. ...Interrupt Trap (16) exception at PC 0xf60d40ac
  4330.  
  4331. I tried to take a core dump from dill, but kgcore gave me timed out and
  4332. resend messages.
  4333.  
  4334. I rebooted allspice, but it died again with:
  4335.  
  4336. Fatal Error: LfsOkToRead read from clean segment
  4337.  
  4338.  
  4339. I rebooted a second time.
  4340.  
  4341.  
  4342. Bob
  4343.  
  4344.  
  4345. Log-Number: 32393
  4346. Date: Thu, 7 May 92 09:44:50 PDT
  4347. From: ouster (John Ousterhout)
  4348. Subject: Migd problems
  4349.  
  4350. Oops, sorry for the incomplete preceding message.
  4351.  
  4352. When I came in this morning, pmake was having problems with migd:
  4353.  
  4354.     MigOpenPdev: Error opening pdev /sprite/admin/migd/pdev (still trying): I/O error.
  4355.     MigOpenPdev: Unable to contact daemon.
  4356.  
  4357. I thought that if I deleted the pdev then a new migration daemon would
  4358. automatically start up, but it just caused a different error message:
  4359.  
  4360.     MigOpenPdev: Error opening pdev /sprite/admin/migd/pdev (still trying): no such file or directory.
  4361.     MigOpenPdev: Unable to contact daemon.
  4362.  
  4363. Does anyone know what's going on here?  I thought that new migration daemons
  4364. were supposed to get created automatically when old ones die or become
  4365. unreachable, but this doesn't seem to be happening.  The migration situation
  4366. is still goofed up.
  4367.  
  4368.                     -John-
  4369.  
  4370.  
  4371. Log-Number: 32394
  4372. Subject: Re: Migd problems 
  4373. Date: Thu, 07 May 92 10:18:50 PDT
  4374. From: Mike Kupfer <kupfer>
  4375.  
  4376. What seems to have happened is that the global master was running on
  4377. clove and got stuck.  Apparently after John removed the pdev the other
  4378. migd's kept trying to talk to the master on clove; I don't know why.
  4379. I didn't see anything in clove's migd log or in the global log to
  4380. indicate why things got stuck in the first place.  "rpcstat -chan" on
  4381. arson showed a channel to clove that was "busy input"--maybe the
  4382. timeout processing for the RPC got fouled up?
  4383.  
  4384. Anyway, I killed and restarted the migd on clove, and this seemed to
  4385. free up everyone except allspice, so I killed and restarted its migd
  4386. as well.
  4387.  
  4388. mike
  4389.  
  4390.  
  4391.  
  4392. Log-Number: 32397
  4393. Date: Fri, 8 May 92 21:06:25 PDT
  4394. From: shirriff (Ken Shirriff)
  4395. Subject: Why / ran out of space
  4396.  
  4397. The ip server on sabotage created a 95 MB error file in
  4398. /hosts/sabotage/ip.out.  I kmsg -d'd sabotage and
  4399. got rid of the file.
  4400.  
  4401. Ken
  4402.  
  4403.  
  4404. Log-Number: 32398
  4405. Date: Fri, 8 May 92 23:39:59 PDT
  4406. From: voelker (Geoffrey M. Voelker)
  4407. Subject: Lust went south
  4408.  
  4409.  
  4410. When I came back from dinner at around 11:15, lust seemed to be
  4411. going in circles.  Allspice was recovering handles and failing
  4412. repeatedly from lust's point of view on it's console, and the
  4413. rest of the world showed lust trying to recover handles and failing.
  4414. I could ping lust, but I could not rlogin into it or get a
  4415. prompt at its console.  So I rebooted it and things seemed to have
  4416. fixed themselves.
  4417.  
  4418. Lust's console was filled with allspice and loiter trying to
  4419. recover handles and failing, and with RPC broadcast timeouts.
  4420.  
  4421. Covet's syslog showed a long series of `lust RPC timeouts' and
  4422. `failed recovery' with a recovery done of 30002 which, looking
  4423. in /usr/include/status.h, looks like a RPC_TIMEOUT.
  4424.  
  4425. -geoff
  4426.  
  4427.  
  4428. Log-Number: 32403
  4429. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  4430. Date: Mon, 11 May 1992 22:03:36 PDT
  4431. Subject: Re: "expect" script to monitor ipServer?
  4432.  
  4433. I have the source to expect and now and then I work on porting it to Sprite.
  4434. We don't have ptys.  I have a hacked-up pty implementation that doesn't
  4435. seem to work yet. I'll keep working on it during my copious spare time
  4436. but don't expect anything soon (no pun intended).
  4437.  
  4438. John
  4439.  
  4440.  
  4441. Log-Number: 32405
  4442. Subject: Re: more mysterious pmake hangs 
  4443. Date: Tue, 12 May 92 14:22:44 PDT
  4444. From: Mike Kupfer <kupfer>
  4445.  
  4446. I found the culprit for the hangs: clove was failing the exec's of sh,
  4447. and apparently this information wasn't propagating back to pmake. 
  4448. There was a repeating pattern of lines in clove's syslog that looked
  4449. like
  4450.  
  4451.   Fsprefix_OpenCheck waiting for recovery
  4452.   Fsprefix_OpenCheck ok
  4453.   open of "/sprite/cmds/sh" waiting for recovery
  4454.   Remote exec of /sprite/cmds/sh failed: the system call was aborted
  4455.     by a signal
  4456.  
  4457. According to the code (ProcDoRemoteExec), the remote process exits at
  4458. this point.  I don't know why the exit information doesn't make it
  4459. back to the parent.
  4460.  
  4461. mike
  4462.  
  4463.  
  4464. Log-Number: 32406
  4465. Date: Wed, 13 May 1992 02:49:35 -0700
  4466. From: "Dean R. E. Long" <dlong@cse.ucsc.edu>
  4467. Subject: List_Remove panic (item's pointers are invalid)
  4468.  
  4469. We've been getting this particular panic quite a bit lately:
  4470. in DeleteBlock() of fscacheBlocks.c,
  4471.  
  4472. List_Remove(&blockPtr->fileLinks);
  4473.  
  4474. dl
  4475.  
  4476.  
  4477. Log-Number: 32407
  4478. Date: Wed, 13 May 1992 02:51:46 -0700
  4479. From: "Dean R. E. Long" <dlong@cse.ucsc.edu>
  4480. Subject: List_Remove (cont)
  4481.  
  4482. I almost forgot.  We are running the sun4c.1.112 kernel.  The
  4483. last time the panic happened, I was untarring a file onto
  4484. an LFS filesystem.
  4485.  
  4486. dl
  4487.  
  4488.  
  4489. Log-Number: 32408
  4490. Date: Wed, 13 May 92 08:12:01 PDT
  4491. From: bmiller (Bob Miller)
  4492. Subject: Lust
  4493.  
  4494.  
  4495. Lust was hung this morning (allspice seemed to be OK).
  4496. I rebooted it and it couldn't find the server
  4497. for "/".  So, I rebooted allspice.
  4498.  
  4499. Allspice's console had these messages:
  4500.  
  4501. 'Reinit recv unit' and 'Intel: Spurious interrupt (2)'
  4502.  
  4503.  
  4504.  
  4505.     Bob
  4506.  
  4507.  
  4508.  
  4509. Log-Number: 32422
  4510. Subject: Re: scrolling syslog window, allspice reboot
  4511. Date: Fri, 15 May 92 14:56:45 PDT
  4512. From: Mike Kupfer <kupfer>
  4513.  
  4514. As usual, "df /" showed plenty of space.  I looked through
  4515. subversion's syslog, but none of the new printf's that I'd put in were
  4516. there.
  4517.  
  4518. I tried "tail /sprite/admin/migd/global-log".  The last part of the
  4519. file looked like part of a grant proposal.  Unfortunately, all future
  4520. commands that I typed at subversion hung, so I told Bob to reboot.
  4521.  
  4522. I think at about this time the following messages appeared in
  4523. allspice's syslog:
  4524.  
  4525.   ConsistTimeout (1 minutes) client 90 write-back & invalidate file <10,9620> "global-log"
  4526.     Client state killed: 1 refs 1 write 0 exec
  4527.   FsrmtFileVerify: "global-log" <10,9620> client 90 not found
  4528.   Fsrmt_RpcWrite, stale handle <10,9620> client 90
  4529.   5/15/92 14:19:05 subversion (90) Dropping regular open during recovery
  4530.   <write> 5/15/92 14:21:50 subversion (90) RPC timed-out
  4531.   <30>May 15 14:21:54 migd[50e37]: Write to global daemon timed out.
  4532.   <close> 5/15/92 14:22:00 subversion (90) RPC timed-out
  4533.   5/15/92 14:22:22 subversion (90) rebooted
  4534.   ClientCommand, return-attrs msg to client 90 file "spritehosts" <10,90598> failed 3000a
  4535.   <prefix> 5/15/92 14:22:36 broadcast (0) RPC timed-out
  4536.   ProcessConsist: write-back & invalidate request failed <40008> file "global-log" <10,9620>
  4537.   Consistency failed 40008 on <10,9620>
  4538.  
  4539.  
  4540. I tried looking at global-log on both allspice and sage; in both cases
  4541. the requests hung.  Sage had hung RPCs to treason and allspice;
  4542. allspice had hung RPCs to treason.
  4543.  
  4544. I took at core dump of allspice.  It's
  4545. /home/ginger/cores/allspice.hang.migdlog.  The kernel was 1.112.  I
  4546. rebooted the new kernel off of allspice's disk, which got me 1.112
  4547. again.  Is the installation of new kernels in /allspiceA and /lustA
  4548. done by hand or mechanically?
  4549.  
  4550. mike
  4551.  
  4552.  
  4553. Log-Number: 32411
  4554. Subject: litany of server hangs, full partitions, sendmail problems
  4555. Date: Wed, 13 May 92 12:27:08 PDT
  4556. From: Mike Kupfer <kupfer>
  4557.  
  4558. Sprite was in a sorry state this morning.  I don't know which of the
  4559. following problems are related and which are independent.
  4560.  
  4561. (1) covet was complaining that it couldn't write back its 45KB migd
  4562. log file, despite the fact that there 64MB free on the root partition.
  4563. My guess is that the root partition did fill up around 0800 this
  4564. morning; there is a message in the old Allspice syslog
  4565.  
  4566.   Fscache_Write: Alloc failed <10,10> "maillog" DISK FULL
  4567.  
  4568. followed eventually by 
  4569.  
  4570.   ConsistTimeout (1 minutes) client 90 write-back & invalidate file <10,82837> "maillog"
  4571.     Client state killed: 1 refs 1 write 0 exec
  4572.   ConsistTimeout (1 minutes) client 88 write-back & invalidate file <10,9574> "covet.Berkeley.EDU.log"
  4573.     Client state killed: 1 refs 1 write 0 exec
  4574.   FsrmtFileVerify: "covet.Berkeley.EDU.log" <10,9574> client 88 not found
  4575.   Fsrmt_RpcWrite, stale handle <10,9574> client 88
  4576.   5/13/92 8:45:25 covet (88) initiating recovery
  4577.  
  4578. Host 90 is subversion (Bob's machine).  Jim rebooted covet, and the
  4579. write-back error messages in covet's syslog reappeared.  I rebooted
  4580. allspice (more on that below), and covet kept complaining.  I rebooted
  4581. covet a second time, and it started complaining again.  Finally I
  4582. deleted the migd log file and restarted covet's migd.  *That* made the
  4583. messages stop.  (By the way, the old and new migd log file have the
  4584. same i-number, if that makes any difference.)
  4585.  
  4586. Poking through Allspice's syslog, I also see (from around 1100 this
  4587. morning)
  4588.  
  4589.   ProcessConsist: write-back & invalidate request failed <40008> file "maillog" <10,82837>
  4590.   <consist> RPC exit 0x1
  4591.   Consistency failed 40008 on <10,82837>
  4592.   ConsistTimeout (1 minutes) client 90 write-back & invalidate file <10,82837> "maillog"
  4593.     Client state killed: 2 refs 2 write 0 exec
  4594.  
  4595. if that's of any help.
  4596.  
  4597. (2) Allspice had 4 "open" RPC's to lust that were hung.  Lust reported
  4598. them as busy.  I wasn't sure how to track down what the RPCs were, so
  4599. I rebooted Allspice.  After Allspice rebooted Lust still reported
  4600. those 4 RPC's as busy, so I rebooted Lust.
  4601.  
  4602. \whine{Are we ever going to get kgcore working for DECstations?}
  4603.  
  4604. (3) At some point during all this Jim checked his mail and found
  4605. random bits of garbage and mail addressed to people other than him. 
  4606. Did anyone else get their mail file trashed?
  4607.  
  4608. (4) Before I rebooted allspice, its syslog had a bunch of messages 
  4609.  
  4610.   <18>May 13 10:45:09 sendmail[10e80]: AA69248: SYSERR: SMTP-MAIL: cannot fork: invalid argument
  4611.   <18>May 13 10:50:45 sendmail[50e3a]: NOQUEUE: SYSERR: daemon: cannot fork: invalid argument
  4612.  
  4613. plus a bunch of messages about problems cleaning /swap1 ("skipping
  4614. deleted file" and "Can't fetch handle").  I thought this might have
  4615. been a replay of the problem where the old Compat_MapCode mapped
  4616. VM_NO_SEGMENTS to EINVAL, but the sun4 sendmail binary is from March,
  4617. so it should be using the current version of Compat_MapCode.
  4618.  
  4619. mike
  4620.  
  4621.  
  4622. Log-Number: 32416
  4623. Subject: lust problems from earlier today
  4624. Date: Thu, 14 May 92 15:43:08 PDT
  4625. From: Mike Kupfer <kupfer>
  4626.  
  4627. Just before noon allspice, lust, and sassafras were stuck in some sort
  4628. of three-way dance.  
  4629.  
  4630. Allspice kept saying that it was recovering handles with lust and that
  4631. recovery failed because of an RPC timeout.  
  4632.  
  4633. Lust kept failing a reopen of /sprite/admin/migd/pdev with sassafras. 
  4634. It would then say it was waiting for recovery on
  4635. /sprite/admin/migd/pdev, complain that it had a stale handle for "/",
  4636. and then go through recovery with allspice.
  4637.  
  4638. Sassafras wasn't talking.  When I put it into the debugger, it mumbled
  4639. something about no disk space for the migd global-log.  When I went
  4640. back to look at lust, it was still doing the same dance, but with a
  4641. different partner (sabotage, instead of sassafras).
  4642.  
  4643. When I looked at lust right after the Sprite meeting, it had a bunch
  4644. of messages that looked like the /sprite/admin/migd/pdev dance (with
  4645. larceny, I think), but the messages ended abruptly in mid-message. 
  4646. Lust didn't respond to the console or to RPC's, so I rebooted it.  
  4647.  
  4648. When it came up, it couldn't talk to ginger.  "ping 128.32.150.28"
  4649. (ginger's IP address) got no answers from ginger, and the inverse
  4650. incantation on ginger didn't work, either.  However, both ginger and
  4651. lust could talk to allspice okay.  I called Mary to figure out what
  4652. the next step should be, and when I finished talking to her, the
  4653. problem had gone away.  Of course, by this time the nfsmount's were
  4654. all messed up, so I power-cycled lust (so that it would run through
  4655. its self-tests), and except for /pcs, it now seems to be fairly
  4656. content.
  4657.  
  4658. mike
  4659.  
  4660.  
  4661. Log-Number: 32417
  4662. Subject: RCS directories in kernel sources
  4663. Date: Thu, 14 May 92 16:23:38 PDT
  4664. From: Mike Kupfer <kupfer>
  4665.  
  4666. There aren't supposed to be RCS directories in the kernel module
  4667. directories, are there?  (I suspect that mkmf is creating them.)
  4668.  
  4669. mike
  4670. --
  4671. dbg/RCS/
  4672. dev/RCS/
  4673. fs/RCS/
  4674. fscache/RCS/
  4675. fsconsist/RCS/
  4676. fsdm/RCS/
  4677. fsio/RCS/
  4678. fslcl/RCS/
  4679. fspdev/RCS/
  4680. fsprefix/RCS/
  4681. fsrmt/RCS/
  4682. fsutil/RCS/
  4683. lfs/RCS/
  4684. libc/RCS/
  4685. mach/RCS/
  4686. main/RCS/
  4687. mem/RCS/
  4688. net/RCS/
  4689. ofs/RCS/
  4690. prof/RCS/
  4691. raid.null/RCS/
  4692. raid/RCS/
  4693. recov/RCS/
  4694. rpc/RCS/
  4695. sched/RCS/
  4696. sig/RCS/
  4697. sync/RCS/
  4698. sys/RCS/
  4699. timer/RCS/
  4700. utils/RCS/
  4701. vm/RCS/
  4702.  
  4703.  
  4704. Log-Number: 32419
  4705. Subject: ds3100 cpp is ANSI; pmake not lintable
  4706. Date: Thu, 14 May 92 20:56:53 PDT
  4707. From: Mike Kupfer <kupfer>
  4708.  
  4709. /sprite/cmds.ds3100/cpp is the GNU cpp.  Shouldn't it be a link to the
  4710. Ultrix cpp (/usr/lib/cmplrs/cc/cpp), so that "cc -E" and "cpp" give
  4711. you the same results?
  4712.  
  4713. The reason I discovered this is that pmake is not lintable with an
  4714. ANSI cpp.  This is because pmake uses cpp token concatentation, the
  4715. syntax for which depends on whether you have an ANSI or non-ANSI cpp. 
  4716. pmake is smart enough to recognize that ANSI cpp is different, but
  4717. lint defeats pmake by turning off __STDC__.  Theoretically you should
  4718. still be able to lint pmake on DECstations, except that lint invokes
  4719. cpp directly, rather than using "cc -E".
  4720.  
  4721. mike
  4722.  
  4723.  
  4724. Log-Number: 32420
  4725. Subject: lust crash: output packet too big
  4726. Date: Thu, 14 May 92 23:34:14 PDT
  4727. From: Mike Kupfer <kupfer>
  4728.  
  4729. Lust croaked, complaining it had gotten a too-big output packet.  It
  4730. was running the 1.112 kernel; I rebooted with 1.113.
  4731.  
  4732. mike
  4733.  
  4734.  
  4735. Log-Number: 32423
  4736. Date: Sun, 17 May 92 16:54:50 PDT
  4737. From: shirriff (Ken Shirriff)
  4738. Subject: dl477 woes
  4739.  
  4740. The Dec laser printer in 477 repeatably hangs if you use "lprm" to remove
  4741. a job from the print queue.  The only way to get it working again is to
  4742. reboot larceny, the host ds5000.
  4743.  
  4744. I tracked the problem through the twisty maze of printer daemons, and the
  4745. hang occurs in pscomm, where pscomm sends a ^T to the printer and then
  4746. does a select to see if the printer has any status.  When hung, the select
  4747. fails.  Checking in the kernel, the serial chip never generates an interrupt
  4748. for an incoming character, causing the select to fail.
  4749.  
  4750. I was unable to check if this problem is specific to ds5000s or occurs on
  4751. Suns, due to a gender incompatibility in the sun4 serial compatibility.
  4752. I was unable to check if this problem is specific to Dec laser printers
  4753. because we don't have a working LaserWriter.
  4754.  
  4755. So, until this gets fixed, if you change your mind about printing anything,
  4756. don't use lprm.
  4757.  
  4758. Ken
  4759.  
  4760.  
  4761. Log-Number: 32433
  4762. Date: Fri, 22 May 92 13:32:05 PDT
  4763. From: shirriff (Ken Shirriff)
  4764. Subject: dl477 hanging problem fixed
  4765.  
  4766. I fixed the problem with lprm hanging dl477.  The problem was that lprm
  4767. results in a TD_RAW_SHUTDOWN on the serial line, which seems to permanenetly
  4768. shutdown the line.  I commented this out in devDC7085.c for the printer ports
  4769. and now dl477 doesn't hang, and lprm still works.
  4770.  
  4771. Ken
  4772.  
  4773.  
  4774. Log-Number: 32424
  4775. Subject: ds5000 register botch if error when copying in args?
  4776. Date: Sun, 17 May 92 22:52:32 PDT
  4777. From: Mike Kupfer <kupfer>
  4778.  
  4779. If I understand the ds5000 system call code, if there is an error
  4780. calling a MachFetch?Args routine, the routine will appear to return
  4781. with a non-zero status.  If this happens, the system call code in
  4782. machAsm.s bails out by jumping to sysCallReturn.  The code at
  4783. sysCallReturn checks the PCB's specialHandling flag by indirecting
  4784. through s1.  Unfortunately, s1 was only set up if there was no error
  4785. from fetching the args.  If there was an error, it looks to me like
  4786. the fetch indirects through garbage.
  4787.  
  4788. mike
  4789.  
  4790.  
  4791. Log-Number: 32429
  4792. Date: Wed, 20 May 92 16:32:20 PDT
  4793. From: shirriff (Ken Shirriff)
  4794. Subject: color printer problems
  4795.  
  4796. I'm trying to print a large (500K) file on the color printer.  After a
  4797. while the printer says "RS232C ERROR" or "ENGINE CTRL ERR".  The manual
  4798. says: "The following error messages may appear on your printer display.
  4799. Turn the power off and then on again.  If the error message reappears,
  4800. call your Digital service representative."
  4801.  
  4802. I don't know if the messages mean our serial line messes up or some other
  4803. problem.
  4804.  
  4805. Ken
  4806.  
  4807.  
  4808. Log-Number: 32432
  4809. Date: Thu, 21 May 92 13:11:39 PDT
  4810. From: ouster (John Ousterhout)
  4811. Subject: tyranny crash
  4812.  
  4813. Tyranny also died this morning with the same "Fatal Error: FsCacheFileBlocks,
  4814. bad block" error that other machines have been getting.  What is this,
  4815. an epidemic?
  4816.                     -John-
  4817.  
  4818.  
  4819. Log-Number: 32439
  4820. Date: Tue, 26 May 92 11:30:44 PDT
  4821. From: pmchen (Peter M. Chen)
  4822. Subject: mustard crash
  4823.  
  4824. The message on the console was
  4825.  
  4826. procPtr->vmPtr->numMakeAcc = 0
  4827. TLB LD miss exception at PC 0x800ab824
  4828.  
  4829. (Mustard was running 1.113, ds5000)
  4830.  
  4831. Pete
  4832.  
  4833.  
  4834. Log-Number: 32438
  4835. Date: Mon, 25 May 92 22:35:13 PDT
  4836. From: shirriff (Ken Shirriff)
  4837. Subject: Allspice, nameserver problems
  4838.  
  4839. We seemed to run into the old "CSSG nameserver crashes and then things don't
  4840. work" problem.  At least, for some reason Sprite suddenly became unable to
  4841. access most of the outside world: shallot, agate, okeeffe, ucbvax, etc.
  4842. I'm assuming this problem will be cured tomorrow.
  4843.  
  4844. Also, allspice later ended up in a deadlock so I rebooted.  Other machines
  4845. said: allspice (14) RPC timed-out
  4846. Allspice was busy printing:
  4847. "return-attrs msg to client xx file "spritehosts" failed."
  4848. where xx was 60 (arson) and 1 (lust).
  4849.  
  4850. Ken
  4851.  
  4852.  
  4853. Log-Number: 32440
  4854. Subject: allspice reboot: /user6 filled up
  4855. Date: Tue, 26 May 92 11:48:40 PDT
  4856. From: Mike Kupfer <kupfer>
  4857.  
  4858. /user6 filled up and crashed allspice.  Bob tried rebooting it this
  4859. morning and it kept crashing, so he gave up.
  4860.  
  4861. When I came in, I tracked down the Responsible User and also one of
  4862. the clients that was trying to do the writeback.  I put the client
  4863. (pepper) into the debugger and removed a directory that I had in
  4864. /user6, freeing up 125KB or so.  When I reboot allspice, /user6 filled
  4865. up again, so I gunned all the machines that the Responsible User was
  4866. logged in on.  I then cleaned out the {admin,cmds,daemons}.*.old
  4867. directories, freeing up 25MB or so.  
  4868.  
  4869. Strangely enough, at one point the message
  4870.  
  4871.   Fscache_Write: Alloc failed <10,10> "(no name)" DISK FULL
  4872.  
  4873. appeared on allspice's console.  Partition 10 is the root, which had
  4874. over 40MB free at the time.  This was immediately followed by
  4875.  
  4876.   ClientCommand, return-attrs msg to client 44 file "spritehosts" 
  4877.     <10,90598> failed 3000a
  4878.  
  4879. mike
  4880.  
  4881.  
  4882. Log-Number: 32441
  4883. Subject: allspice reboot: timed-out RPCs; routing bug?
  4884. Date: Tue, 26 May 92 16:33:50 PDT
  4885. From: Mike Kupfer <kupfer>
  4886.  
  4887. Allspice started timing out RPCs from Sage.  When I looked at
  4888. Allspice's console, it was printing out about once a second
  4889.  
  4890.   ClientCommand, return-attrs msg to client 68 file "spritehosts" 
  4891.   <...> failed 30004
  4892.  
  4893. Host 68 is sedition.  Sedition's syslog showed that Allspice was
  4894. timing out its RPCs, too.
  4895.  
  4896. I did a "netroute -p" on Allspice; sedition was not listed in the
  4897. route table.  I tried reloading the route table with 
  4898. "netroute -f /etc/spritehosts", but that had no apparent effect.  (By
  4899. the time I could type "netroute -p" again the route to sedition was
  4900. gone, assuming that it had gotten reinstalled in the first place.)
  4901.  
  4902. I didn't want to try installing sedition's route by hand, so I
  4903. rebooted.
  4904.  
  4905. Allspice and Sedition were running the 1.113 kernel.
  4906.  
  4907. mike
  4908.  
  4909.  
  4910. Log-Number: 32444
  4911. Subject: more on RPC_INTERNAL_ERROR problems
  4912. Date: Wed, 27 May 92 15:24:12 PDT
  4913. From: Mike Kupfer <kupfer>
  4914.  
  4915. There seem to be two problems here.  First is that routes are getting
  4916. lost and cannot be put back in.  Second is that the consistency code
  4917. keeps trying even in the face of lost routes.
  4918.  
  4919. I don't understand enough about how routing is supposed to work, but
  4920. the first problem seems to be mismanagement of the route table.  I
  4921. looked at the route entries for forgery from the allspice.forgeryRoute
  4922. core dump.  The first element is
  4923.  
  4924. $2 = {links = {prevPtr = 0xf61b30c8, nextPtr = 0xf69f9e08}, 
  4925.   routeID = 2818048, protocol = 0, netAddress = {
  4926.     {type = 1, address = {
  4927.       ether = {byte1 = 8 '\b', byte2 = 0 '\000', byte3 = 43 '+', 
  4928.                byte4 = 25 '\031', byte5 = 153 '\231', byte6 = 72 'H'},
  4929.       ultra = {data = {"\b\000+\031\231H\353P"}}, 
  4930.       fddi = {byte1 = 8 '\b', byte2 = 0 '\000', byte3 = 43 '+', 
  4931.           byte4 = 25 '\031', byte5 = 153 '\231', byte6 = 72 'H'}, 
  4932.       inet = 134228761}}, 
  4933.     {type = 0, address = {
  4934.       ether = {byte1 = 0 '\000', byte2 = 0 '\000', byte3 = 0 '\000', 
  4935.            byte4 = 2 '\002', byte5 = 255 '\377', 
  4936.            byte6 = 255 '\377'}, 
  4937.       ultra = {data = {"\000\000\000\002\377\377\377\377"}}, 
  4938.       fddi = {byte1 = 0 '\000', byte2 = 0 '\000', byte3 = 0 '\000', 
  4939.           byte4 = 2 '\002', byte5 = 255 '\377', 
  4940.           byte6 = 255 '\377'}, inet = 2}}}, 
  4941.   spriteID = 43, flags = 0, refCount = 1, 
  4942.   desc = {"Route to forgery - ethernet, raw\000"...}, 
  4943.   headerPtr = {0xf69f9da4 "\b", 0x83 <Address 0x83 out of bounds>}, 
  4944.   interPtr = 0xf6105020, minPacket = 0, maxPacket = 1500, minRpc = 0, 
  4945.   maxRpc = 17408, userData = 0x0, 
  4946.   buffer = {...}}
  4947.  
  4948. Note that the flags are 0, which means the route is not valid.
  4949.  
  4950. The next routing element for forgery is
  4951.  
  4952. $7 = {links = {prevPtr = 0xf69f9d10, nextPtr = 0xf69fd258}, 
  4953.   routeID = 2818049, protocol = 0, netAddress = {
  4954.     {type = 1, address = {
  4955.       ether = {byte1 = 8 '\b', byte2 = 0 '\000', byte3 = 43 '+', 
  4956.            byte4 = 25 '\031', byte5 = 153 '\231', byte6 = 72 'H'},
  4957.       ultra = {data = {"\b\000+\031\231H\000 "}}, 
  4958.       fddi = {byte1 = 8 '\b', byte2 = 0 '\000', byte3 = 43 '+', 
  4959.           byte4 = 25 '\031', byte5 = 153 '\231', byte6 = 72 'H'}, 
  4960.       inet = 134228761}}, 
  4961.     {type = 0, address = {
  4962.       ether = {byte1 = 255 '\377', byte2 = 255 '\377', 
  4963.            byte3 = 255 '\377', byte4 = 255 '\377', 
  4964.            byte5 = 0 '\000', byte6 = 0 '\000'}, 
  4965.       ultra = {data = {"\377\377\377\377\000\000\000\000"}}, 
  4966.       fddi = {byte1 = 255 '\377', byte2 = 255 '\377', 
  4967.           byte3 = 255 '\377', byte4 = 255 '\377', byte5 = 0 '\000',
  4968.           byte6 = 0 '\000'}, 
  4969.       inet = 4294967295}}}, 
  4970.   spriteID = 43, flags = 1, refCount = 0, 
  4971.   desc = {"Route to forgery - ethernet, raw\000\000"...}, 
  4972.   headerPtr = {0xf69f9e9c "\b", 0x1 <Address 0x1 out of bounds>}, 
  4973.   interPtr = 0xf6105020, minPacket = 0, maxPacket = 1500, minRpc = 0, 
  4974.   maxRpc = 17408, userData = 0x0, 
  4975.   buffer = {...}}
  4976.  
  4977. Note that the valid bit is turned on in the flags.  I can't tell if
  4978. this route really is okay or not.  Nonetheless, it won't get used,
  4979. because RpcOutput's call to Net_IDToRoute specifies that only the
  4980. first (index 0) route should be used.
  4981.  
  4982. I'm not so sure that the second problem is really a bug, since
  4983. theoretically you could use netroute to reload the routing table.  If
  4984. we do declare it to be a bug, then the guilty code is in
  4985. ClientCommand: the "if" around Fsconsist_Kill should be changed to
  4986. include RPC_INTERNAL_ERROR.
  4987.  
  4988. mike
  4989.  
  4990.  
  4991. Log-Number: 32445
  4992. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  4993. Date: Wed, 27 May 1992 15:47:10 PDT
  4994. Subject: Re: more on RPC_INTERNAL_ERROR problems
  4995.  
  4996. Thanks for tracking this down. It looks to me like there are at
  4997. least 4 separate bugs here. First, RpcOutput should call Net_IDToRoute
  4998. with an index of -1, so that the RPC size is used to determine the
  4999. route to use. Second, Net_IDToRoute does the wrong thing with the
  5000. index. The index should refer to valid routes but currently it
  5001. refers to all routes. Net_IDToRoute only returns a pointer to a
  5002. valid route, and route 0 isn't valid so it doesn't return anything.
  5003. If you are wondering why we need invalid routes at all it is because
  5004. a route could be deleted while it is inuse. In that case the route
  5005. is marked as invalid so that it will be ignored by subsequent calls
  5006. to Net_IDToRoute. The invalid route will be deleted once its
  5007. reference count drops to 0. This leads us to the third bug. For
  5008. some reason the invalid route to forgery is not being cleaned up.
  5009. Perhaps an RPC to forgery is hung? Finally, I think the upper-level
  5010. code should declare the client dead if it can't find a route to
  5011. it. Normally the Net_IDToRoute will do an ARP if it can't find a
  5012. route to a host so this situation shouldn't happen very often.
  5013.  
  5014. I'll fix the first two bugs if someone else (Mike?) will fix the
  5015. last one.
  5016.  
  5017. John
  5018.  
  5019.  
  5020.  
  5021. Log-Number: 32448
  5022. Date: Fri, 29 May 92 07:32:05 PDT
  5023. From: bmiller (Bob Miller)
  5024. Subject: lust hung
  5025.  
  5026.  
  5027. Lust was hung this morning...
  5028.  
  5029. MachKernelException Handler: Address error on load: addr: 3 PC: 8004ed94
  5030. Entering debugger with a TLB load address exception at PC 0x8004ed94
  5031.  
  5032.  
  5033. I rebooted lust.
  5034.  
  5035.  
  5036.     Bob
  5037.  
  5038.  
  5039. Log-Number: 32449
  5040. Date: Fri, 29 May 92 09:37:48 PDT
  5041. From: voelker (Geoffrey M. Voelker)
  5042. Subject: Re: lust hung
  5043.  
  5044. Shoot, I thought for sure that this was in the net module, but
  5045. 0x8004ed94 is in devSCSI90.c, line 441.  I don't know how reliable
  5046. that address is, but it's in the interrupt handler in the section
  5047. that handles IR_ILL_CMD (illegal command).
  5048.  
  5049. -geoff   
  5050.  
  5051.  
  5052.  
  5053. Log-Number: 32451
  5054. Subject: mysterious allspice hang
  5055. Date: Mon, 01 Jun 92 16:18:11 PDT
  5056. From: Mike Kupfer <kupfer>
  5057.  
  5058. Allspice started hanging RPCs.  There wasn't anything suspicious on
  5059. the console, and L1-p didn't show anything interesting.  I typed
  5060. "uptime", which seemed to hang, so I took a core dump and rebooted.
  5061.  
  5062. The core dump is /home/ginger/cores/allspice.hung.1jun, and the kernel
  5063. was 1.112.
  5064.  
  5065. mike
  5066.  
  5067.  
  5068. Log-Number: 32494
  5069. Subject: Re: mysterious allspice hang
  5070. Date: Wed, 10 Jun 92 15:14:35 PDT
  5071. From: Mike Kupfer <kupfer>
  5072.  
  5073. I looked at the core dump from the June 1st allspice hang.  It wasn't
  5074. enlightening.  There were a lot of processes stuck waiting for
  5075. somebody to finish consistency on /etc/spritehosts, e.g.,
  5076.  
  5077.   #0  0xf600c658 in Mach_ContextSwitch ()
  5078.   #1  0xf60cf0bc in SyncEventWaitInt (...) (...)
  5079.   #2  0xf60ce2ac in Sync_SlowWait (...) (...)
  5080.   #3  0xf6049664 in StartConsistency (
  5081.       consistPtr=(struct Fsconsist_Info *) 0xf65c8c40, 
  5082.       clientID=14, useFlags=36865, 
  5083.       cacheablePtr=(ClientData) 0xf76bd328) (fsconsistCache.c line 363)
  5084.   #4  0xf60495d4 in Fsconsist_FileConsistency (
  5085.       handlePtr=(struct Fsio_FileIOHandle *) 0xf65c8c40, 
  5086.       clientID=14, useFlags=36865, 
  5087.       cacheablePtr=(ClientData) 0xf76bd328, 
  5088.       openTimeStampPtr=(ClientData) 0xf76bd330) 
  5089.       (fsconsistCache.c line 299)
  5090.   #5  0xf604df04 in Fsio_FileNameOpen (...) (...)
  5091.   #6  0xf6053150 in FslclOpen (...) (...)
  5092.   #7  0xf605c2a0 in Fsprefix_LookupOperation (...) (...)
  5093.   #8  0xf6030754 in Fs_Open (...) (...)
  5094.   #9  0xf603fc10 in Fs_OpenStub (...) (...)
  5095.   #10 0xf6011d1c in MachFetchArgsEnd ()
  5096.  
  5097. A lot of the processes were RPC servers.  The consistency struct
  5098. contained 
  5099.  
  5100.   (kgdb) print *$5
  5101.   $19 = {lock = {inUse = 0, waiting = 0, 
  5102.     name = 0xf6049520 "Fs:consistLock", 
  5103.     holderPC = 0xf60495b8 "@\002\021\310\220\020", 
  5104.     holderPCBPtr = 0xf668cec0}, flags = 5, lastWriter = -1, 
  5105.     openTimeStamp = 1819182, hdrPtr = 0xf65c8b80, 
  5106.     clientList = {prevPtr = 0xf65c5eb0, nextPtr = 0xf6e38b90}, 
  5107.     msgList = {prevPtr = 0xf6d76848, nextPtr = 0xf74a2508}, 
  5108.     consistDone = {waiting = 1}, repliesIn = {waiting = 1}}
  5109.   (kgdb) print $5.hdrPtr.name
  5110.   $20 = (char *) 0xf65c5770 "spritehosts"
  5111.   (kgdb) print /x $5.hdrPtr.flags
  5112.   $21 = 0x00000001
  5113.   (kgdb) print /x $5.hdrPtr.refCount
  5114.   $22 = 0x00000014
  5115.  
  5116. If I was able to find the right set of #defines for the flags, the
  5117. consistency flags are FS_CONSIST_IN_PROGRESS|FS_CONSIST_TIMEOUT, and
  5118. the handle header flag is FS_HANDLE_INSTALLED.
  5119.  
  5120. mike
  5121.  
  5122.  
  5123. Log-Number: 32452
  5124. Date: Mon, 1 Jun 92 18:05:10 PDT
  5125. From: shirriff (Ken Shirriff)
  5126. Subject: Out of control csh -i on lust
  5127.  
  5128. An out of control csh -i on lust was using 90% of the cpu.
  5129. I found another one on arson.  I've tried to debug them, but
  5130. without success.
  5131.  
  5132. Ken
  5133.  
  5134.  
  5135. Log-Number: 32453
  5136. Subject: recovery deadlock, writeback failure
  5137. Date: Mon, 01 Jun 92 22:41:54 PDT
  5138. From: Mike Kupfer <kupfer>
  5139.  
  5140.  
  5141. I ran into a case where allspice started cleaning then gave up on a
  5142. writeback request, while the client it gave up on (sage) was still
  5143. alive.  The client then got stuck waiting to do recovery with allspice.
  5144.  
  5145. Here's more or less what sage's syslog had:
  5146.  
  5147.   RpcDoCall: <write> RPC to allspice is hung
  5148.   RpcDoCall: <write> RPC to allspice is hung
  5149.   <write> RPC ok
  5150.   <write> RPC ok
  5151.   6/1/92 21:20:52 allspice RmtFile "sun4.md/fsAttributes.o" <...>
  5152.     Writeback failed: stale handle
  5153.   ... allspice (14) recovering handles
  5154.   Fsprefix_OpenCheck waiting for recovery
  5155.   Fsprefix_OpenCheck waiting for recovery
  5156.   Fsprefix_OpenCheck waiting for recovery
  5157.  
  5158. Here's the relevant section from allspice's syslog:
  5159.  
  5160.   /sprite/src/kernel: Cleaning started - deficit 60 segs
  5161.   ConsistTimeout (1 minutes) client 33 write-back file <2,53970> 
  5162.     "fsAttributes.o"
  5163.     Client state killed: 0 refs 0 write 0 exec
  5164.   /sprite/src/kernel: Cleaned 86 segments in 32 segments
  5165.   /sprite/src/kernel: Cleaning started - deficit 13 segs
  5166.   FsrmtFileVerify: "fsAttributes.o" <2,53970> client 33 not found
  5167.   Fsrmt_RpcWrite, stale handle <2,53970> client 33
  5168.   Fscache_BlockRead: Giving zeros to "fsAttributes.o" <2,53970> 
  5169.     block 1 amount 43657
  5170.   /sprite/src/kernel: Cleaned 116 segments in 50 segments
  5171.  
  5172. Now, the reason why sage couldn't recover with allspice seems to be
  5173. that it had deadlocked.  Here's the process in Fsutil_Reopen:
  5174.  
  5175.   (gdb) bt
  5176.   #0  0xf600c5c0 in Mach_ContextSwitch ()
  5177.   #1  0xf60bb914 in SyncEventWaitInt (event=4133358952, wakeIfSignal=0)
  5178.       (syncLock.c line 634)
  5179.   #2  0xf60ba79c in Sync_SlowLock (lockPtr=(struct Sync_KernelLock *) 
  5180.       0xf65e0d68) (syncLock.c line 214)
  5181.   #3  0xf60ba558 in Sync_GetLock (lockPtr=(struct Sync_KernelLock *) 
  5182.       0xf65e0d68) (syncLock.c line 129)
  5183.   #4  0xf6040590 in Fscache_OkToScavenge (cacheInfoPtr=
  5184.       (struct Fscache_FileInfo *) 0xf65e0d48) (fscacheOps.c line 420)
  5185.   #5  0xf605bcac in FsrmtFileReopen (hdrPtr=
  5186.       (struct Fs_HandleHeader *) 0xf65e0cf0) (fsrmtFile.c line 276)
  5187.   #6  0xf6061780 in ReopenHandles (serverID=14) 
  5188.       (fsutilRecovery.c line 219)
  5189.   #7  0xf6061540 in Fsutil_Reopen (serverID=14) 
  5190.       (fsutilRecovery.c line 125)
  5191.   #8  0xf6061d04 in Fsutil_AttemptRecovery (data=(ClientData) 
  5192.       0xf65e0cf0, callInfoPtr=(Proc_CallInfo *) 0xf802fdd8) 
  5193.       (fsutilRecovery.c line 522)
  5194.   #9  0xf60a3ec4 in Proc_ServerProc () (procServer.c line 380)
  5195.   #10 0xf60b7330 in Sched_StartKernProc (...) (...)
  5196.  
  5197. It's waiting for the monitor lock on the cache info object.  The
  5198. process that holds the lock is doing a writeback on that cache block.
  5199.  
  5200.   #0  0xf600c5c0 in Mach_ContextSwitch ()
  5201.   #1  0xf60bb914 in SyncEventWaitInt (event=4133358996, wakeIfSignal=0) 
  5202.       (syncLock.c line 634)
  5203.   #2  0xf60bab04 in Sync_SlowWait (conditionPtr=
  5204.       (struct Sync_Condition *)0xf65e0d94, 
  5205.       lockPtr=(struct Sync_KernelLock *) 0xf60e0880, 
  5206.       wakeIfSignal=0) (syncLock.c line 279)
  5207.   #3  0xf603d434 in Fscache_FileWriteBack (cacheInfoPtr=
  5208.       (struct Fscache_FileInfo *) 0xf65e0d48, firstBlock=-161581352, 
  5209.       lastBlock=11, flags=1, blocksSkippedPtr=(ClientData) 0xf801dc9c) 
  5210.       (fscacheBlocks.c line 1391)
  5211.   #4  0xf60406c8 in Fscache_Consist (cacheInfoPtr=
  5212.       (struct Fscache_FileInfo *) 0xf65e0d48, flags=1, 
  5213.       cachedAttrPtr=(struct Fscache_Attributes *) 0xf801dd20) 
  5214.       (fscacheOps.c line 469)
  5215.   #5  0xf6043ea0 in ProcessConsist (data=(ClientData) 0xf65b64c8, 
  5216.       callInfoPtr=(Proc_CallInfo *) 0xf801ddd8) 
  5217.       (fsconsistCache.c line 1952)
  5218.   #6  0xf60a3ec4 in Proc_ServerProc () (procServer.c line 380)
  5219.   #7  0xf60b7330 in Sched_StartKernProc (...) (...)
  5220.  
  5221. I think the reason this process is stuck has something to do with the
  5222. fact that Fscache_GetDirtyBlock returns a NIL pointer if the server is
  5223. down (see FsrmtCleanBlocks).
  5224.  
  5225.   (gdb) print /x cacheInfoPtr.flags
  5226.   $15 = 0x00004082
  5227.  
  5228. mike
  5229.  
  5230.  
  5231. Log-Number: 32454
  5232. Subject: no feedback if rmt process killed?
  5233. Date: Mon, 01 Jun 92 22:56:05 PDT
  5234. From: Mike Kupfer <kupfer>
  5235.  
  5236. I just ran into a problem where I'd try to make sun4.md/fs.o. 
  5237. According to pmake, everything went fine.  The only problem is,
  5238. sun4.md/fs.o was never created.
  5239.  
  5240. Finally I did "pmake -X" and found that ld was going into the
  5241. debugger.  (I assume this is because one or more .o files got trashed
  5242. because of the problems I had earlier this evening with allspice.)
  5243. Sprite carefully destroys migrated processes instead of letting them
  5244. go into the debugger, but I would have expected pmake to get some sort
  5245. of notification.
  5246.  
  5247. mike
  5248.  
  5249.  
  5250. Log-Number: 32455
  5251. Subject: procDebug deadlock
  5252. Date: Mon, 01 Jun 92 23:29:32 PDT
  5253. From: Mike Kupfer <kupfer>
  5254.  
  5255.  
  5256. Terrorism got stuck earlier this evening.  A bunch of processes were
  5257. trying to lock process 43e19.  Process 43e19 was stuck in
  5258. AddToDebugList waiting for the procDebug.c monitor lock (it had a
  5259. SIGDEBUG).  The process holding the procDebug monitor lock was gdb. 
  5260. It was trying to lock process 23e2e, which was itself locked and, like
  5261. 43e19, had a SIGDEBUG and was trying to get the procDebug monitor lock
  5262. via AddToDebugList.
  5263.  
  5264. So the bottom line is that there is a deadlock between
  5265. Proc_SuspendProcess/AddToDebugList, which locks the PCB and then gets
  5266. the procDebug monitor lock, and ProcGetThisDebug, which gets the
  5267. procDebug monitor lock and then locks the PCB.
  5268.  
  5269. mike
  5270.  
  5271.  
  5272. Log-Number: 32457
  5273. Subject: problems with rlogin for weekly dumps and log out?
  5274. Date: Tue, 02 Jun 92 13:36:07 PDT
  5275. From: Mike Kupfer <kupfer>
  5276.  
  5277. Mary ran into problems trying to run the weekly dumps from murder. 
  5278. She'd rlogin to sassafras, start the dumps, then log out.  The dumps
  5279. would continue... until the current filesystem was dumped, then the
  5280. dumps would stop.  This would happen even with stdout (and stderr?)
  5281. redirected.  The last few messages in the redirected output would be
  5282.  
  5283.   dump exiting, there were 0 non-fatal errors, 0 hard errors
  5284.   csh: ioctl(fd, FIONCLEX, NULL) failed: I/O error
  5285.   csh: ioctl(fd, FIONCLEX, NULL) failed: I/O error
  5286.   csh: ioctl(fd, FIONCLEX, NULL) failed: I/O error
  5287.   csh: ioctl(fd, FIONCLEX, NULL) failed: I/O error
  5288.   csh: ioctl(fd, FIONCLEX, NULL) failed: I/O error
  5289.  
  5290. Note that the message is coming from csh, not from tar, so I don't
  5291. think this is a tape error.  Also, when I ran the weekly dumps
  5292. directly from sassafras's console, these messages didn't appear.
  5293.  
  5294. Does anyone know what's going on here?  Should I edit the dump how-to
  5295. to say that once you start the weekly dumps, you have to leave that
  5296. shell around until they complete?
  5297.  
  5298. mike
  5299.  
  5300.  
  5301. Log-Number: 32462
  5302. Date: Wed, 3 Jun 92 09:18:57 PDT
  5303. From: pmchen (Peter M. Chen)
  5304. Subject: Re: problems with rlogin for weekly dumps and log out?
  5305.  
  5306. I ran into a similar problem once using "sync" while remotely logged in.
  5307. As I recall, I would rlogin, source a script that generated a sync, then
  5308. logout.  The way I fixed it was to put the script that I sourced into
  5309. a csh script.
  5310.  
  5311. Try putting the dump script into a csh script that calls the dump script.
  5312.  
  5313. Pete
  5314.  
  5315.  
  5316. Log-Number: 32459
  5317. Subject: lust crash: packet too big
  5318. Date: Tue, 02 Jun 92 18:40:08 PDT
  5319. From: Mike Kupfer <kupfer>
  5320.  
  5321.   Fatal Error: OutputPacket: packet too large (4174)
  5322.   (entering debugger at PC) 0x800ee71c
  5323.  
  5324. I tried debugging it from dill, but dill couldn't connect with lust.
  5325.  
  5326.   Dumping system log ...
  5327.   Timing out and resending to host lust
  5328.   Timing out and resending to host lust
  5329.   Timing out and resending to host lust
  5330.  
  5331. By the way, shouldn't there be a printf in panic() that gives the
  5332. version of the kernel, so that you know which symbols to use?  There's
  5333. no kmsg on dill, so you can't do "kmsg -v".
  5334.  
  5335. mike
  5336.  
  5337.  
  5338. Log-Number: 32460
  5339. Subject: cpp version confusion
  5340. Date: Tue, 02 Jun 92 22:27:19 PDT
  5341. From: Mike Kupfer <kupfer>
  5342.  
  5343. It occurred to me that if I fix up /sprite/cmds.ds3100/cpp to be a
  5344. link to the Ultrix cpp, I need to make sure it doesn't get overwritten
  5345. by a "make install" in the GNU cpp source directory.
  5346.  
  5347. So, I trundled over to /sprite/src/cmds/cpp and discovered that the
  5348. version installed there (1.37.1) is not the version we're all running
  5349. (1.36).  Anyone know what the scoop is?  Is 1.37.1 safe to use?
  5350.  
  5351. mike
  5352.  
  5353.  
  5354. Log-Number: 32463
  5355. Date: Wed, 3 Jun 92 12:46:51 PDT
  5356. From: shirriff@ginger.CS.Berkeley.EDU (Ken Shirriff)
  5357. Subject: Allspice: DISK FULL, crash
  5358.  
  5359. Allspice's disk filled up and it crashed.  It crashed in a new place:
  5360. CreateFile: aborting create of 163303 (syms.texi) in 163279
  5361.  
  5362.  
  5363. Log-Number: 32467
  5364. Date: Wed, 3 Jun 92 23:15:36 PDT
  5365. From: shirriff@ginger.CS.Berkeley.EDU (Ken Shirriff)
  5366. Subject: Allspice crash: netroute
  5367.  
  5368. Allspice ran into the same problem with:
  5369. ClientCommand: returnAttrs to client 1 failed "spritehosts" 30004
  5370. I rebooted.
  5371.  
  5372.  
  5373. Log-Number: 32468
  5374. Date: Thu, 4 Jun 92 07:44:31 PDT
  5375. From: bmiller (Bob Miller)
  5376. Subject: allspice reboot
  5377.  
  5378.  
  5379. allspice wasn't responding this morning.  My syslog window show allspice
  5380. and sage hung.
  5381.  
  5382. Allspice's console showed 'Spurious interrupt' and 'Reinit recv unit' messages.
  5383.  
  5384. I rebooted with 'new'.
  5385.  
  5386.  
  5387.  
  5388.     Bob
  5389.  
  5390.  
  5391.  
  5392. Log-Number: 32470
  5393. Subject: 608-2 printer
  5394. Date: Thu, 04 Jun 92 13:53:35 PDT
  5395. From: Mike Kupfer <kupfer>
  5396.  
  5397. I have a simple test case that fails to print the 3rd page (out of 3
  5398. pages) on the 608-2 Laserwriter.  I hooked up the 608-8 printer to
  5399. Sage and the test case works fine.  So, I think we can conclude that
  5400. the fault is with the printer, rather than with the cabling or with
  5401. Sage.
  5402.  
  5403. So, didn't we decide at the Sprite meeting last week to give up on
  5404. repair attempts and just get a new printer?
  5405.  
  5406. Maybe we can bury the old one under Soda Hall in a time capsule...
  5407.  
  5408. mike
  5409.  
  5410.  
  5411. Log-Number: 32471
  5412. From: mgbaker (Mary Baker)
  5413. Subject: fs switch on -1 type again
  5414. Date: Thu, 04 Jun 92 15:25:55 PDT
  5415.  
  5416. We haven't seen one of these in a long time, but my machine just
  5417. went into the debugger for a switch through an fs table using a
  5418. type of -1.  Here's the details:
  5419.  
  5420. (kgdb) where
  5421. #0  panic (__builtin_va_alist=-166931079) (sysPrintf.c line 227)
  5422. sysPrintf.c: no such file or directory.
  5423. #1  0xf60cd92c in MachPageFault (busErrorReg=128, addrErrorReg=(char *) 0x8 <Address 0x8 out of bounds>, trapPsr=289407175, pcValue=(char *) 0x0) (sun4c.md/machCode.c line 1389)
  5424. #2  0xf60d1d04 in MachHandlePageFault ()
  5425. #3  0xf60e9748 in Fs_Open (name=(char *) 0xf81bba58 "sun4c.md/fsutil.h", useFlags=36865, type=0, permissions=-159761008, streamPtrPtr=(struct Fs_Stream **) 0xf81bba4c) (fsNameOps.c line 143)
  5426. #4  0xf60f8bf0 in Fs_OpenStub (...) (...)
  5427. #5  0xf60d1a7c in MachFetchArgsEnd ()
  5428.  
  5429. Reading in symbols for fsNameOps.c...list
  5430. done.
  5431. #3  0xf60e9748 in Fs_Open (name=(char *) 0xf81bba58 "sun4c.md/fsutil.h", useFlags=36865, type=0, permissions=-159761008, streamPtrPtr=(struct Fs_Stream **) 0xf81bba4c) (fsNameOps.c line 143)
  5432. 143                 openResults.streamData, name, &streamPtr->ioHandlePtr);
  5433. (kgdb) 138                     useFlags, name, (Boolean *)NIL, (Boolean *)NIL);
  5434. 139        streamPtr->nameInfoPtr = nameInfoPtr;
  5435. 140        Fsutil_HandleUnlock(streamPtr);
  5436. 141        status = (*fsio_StreamOpTable[openResults.ioFileID.type].ioOpen)
  5437. 142                (&openResults.ioFileID, &streamPtr->flags, rpc_SpriteID,
  5438. 143                 openResults.streamData, name, &streamPtr->ioHandlePtr);
  5439. 144        if (status == SUCCESS) {
  5440. 145            if (streamPtr->flags & FS_TRUNC) {
  5441. 146            (void)Fs_TruncStream(streamPtr, 0);
  5442. 147            }
  5443.  
  5444.  
  5445. (kgdb) p openResults
  5446. $2 = {
  5447.   ioFileID = {
  5448.     type = -1, 
  5449.     serverID = 0, 
  5450.     major = 73, 
  5451.     minor = 134217728
  5452.   }, 
  5453.   streamID = {
  5454.     type = 2, 
  5455.     serverID = 14, 
  5456.     major = 14, 
  5457.     minor = 169211
  5458.   }, 
  5459.   nameID = {
  5460.     type = 2, 
  5461.     serverID = 14, 
  5462.     major = 2, 
  5463.     minor = 87878
  5464.   }, 
  5465.   dataSize = 52, 
  5466.   streamData = 0xf6834bd0
  5467. }
  5468.  
  5469.  
  5470. Mary
  5471.  
  5472.  
  5473. Log-Number: 32475
  5474. Subject: can't shut down 1.114 cleanly on ds5000
  5475. Date: Fri, 05 Jun 92 12:26:27 PDT
  5476. From: Mike Kupfer <kupfer>
  5477.  
  5478. I frequently have problems (random exceptions) shutting down kernels
  5479. that contain the FDDI support.  Geoff told me that this seems to be
  5480. related to using dynamically allocated buffers for FDDI.  If the
  5481. buffers are statically allocated, the exceptions don't happen.
  5482.  
  5483. mike
  5484.  
  5485.  
  5486. Log-Number: 32479
  5487. Date: Mon, 8 Jun 92 11:22:10 -0700
  5488. From: <voelker@almaden.ibm.com> (Geoff Voelker)
  5489. Subject: problems with shutdown & FDDI on dec5000s
  5490.  
  5491.  
  5492. Mike is correct, there was a problem with shutdown messing up when the
  5493. FDDI module dynamically allocated its receive ring buffers.  If this
  5494. problem persists and a quick fix is desired, the FDDI module can
  5495. be switched to use statically allocated buffers (with which I've never
  5496. encountered the shutdown problem).  Just #define NET_DF_USE_UNCACHED_MEM
  5497. in kernel/net/ds5000.md/netDFInt.h.  (The FDDI driver used uncached
  5498. memory with static buffers from way back when I was building the driver,
  5499. and then I switched to dynamically allocated buffers + cache flushing
  5500. once the driver started working.  Hence the USE_UNCACHED_MEM == static
  5501. buffers.  It was this switch that gave the FDDI driver the performance
  5502. boost.)  Switching to static buffers will increase the kernel size by about
  5503. 45k.
  5504.  
  5505. -geoff
  5506.  
  5507. p.s. Mike wisely suggested that I list the known bugs before I left, and
  5508.      I unwisely forgot to do so.  In the driver, this was the only known bug
  5509.      that I had not fixed (which probably forebodes bunches and bunches that
  5510.      I don't know about :)
  5511.  
  5512.  
  5513.  
  5514. Log-Number: 32480
  5515. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5516. Date: Mon, 8 Jun 1992 11:43:42 PDT
  5517. Subject: Re: problems with shutdown & FDDI on dec5000s
  5518.  
  5519. The ds5000s crash on shutdown in the prom somewhere. The reserved
  5520. instruction exception happens after the kernel calls the prom to
  5521. shutdown the machine. I'm looking into the problem, which I believe
  5522. might have something to do with the stack.  In the meantime if you
  5523. shut down a ds5000 you'll have to push the reset switch on the
  5524. back.
  5525.  
  5526. John
  5527.  
  5528.  
  5529. Log-Number: 32477
  5530. Subject: misc. man page glitches
  5531. Date: Fri, 05 Jun 92 12:51:39 PDT
  5532. From: Mike Kupfer <kupfer>
  5533.  
  5534. Something for the Spring Cleaning list...
  5535.  
  5536. I had occasion to manually reindex the man pages.  There were a few
  5537. man pages, listed below, that caused reindex to complain.  
  5538.  
  5539. Also, reindex bailed out when it got to the SWW man pages, complaining 
  5540.  
  5541.   index: invalid argument
  5542.  
  5543. I assume we're still able to read the indexing information on the SWW,
  5544. so I guess it's not a major problem.  On the other hand, any man
  5545. directories that appear after the SWW ones will apparently not get
  5546. indexed.
  5547.  
  5548. mike
  5549. --
  5550.   /sprite/man/cmds
  5551.   Couldn't find "NAME" section in "cb.man".
  5552.   Couldn't find "NAME" section in "cc_mips.man".
  5553.   Couldn't find "NAME" section in "cvs.man".
  5554.   Unexpected end-of-file in KEYWORDS section of "lockdir.man".
  5555.   Couldn't find "NAME" section in "trchange.man".
  5556.  
  5557.   /local/man/cmds
  5558.   Couldn't find "NAME" section in "checkin.man".
  5559.   Couldn't find "NAME" section in "mkmodules.man".
  5560.   Couldn't find "NAME" section in "sup.man".
  5561.  
  5562.  
  5563. Log-Number: 32488
  5564. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5565. Date: Tue, 9 Jun 1992 17:24:15 PDT
  5566. Subject: mx/tx bug fixed (sort of)
  5567.  
  5568.  
  5569. I've boosted the size of the selection that can be sent by mx and tx to
  5570. 256K. This should be big enough to handle most things. If you go larger
  5571. than that you'll get the "nothing selected" message. Of course this makes
  5572. the processes use more memory, but my changes to mx and tx are supposed
  5573. to be temporary anyway.
  5574.  
  5575. John
  5576.  
  5577.  
  5578. Log-Number: 32491
  5579. Subject: ds3100 "at" lost its setuid bit again
  5580. Date: Wed, 10 Jun 92 12:02:35 PDT
  5581. From: Mike Kupfer <kupfer>
  5582.  
  5583. ... this also happened earlier this year, with no indication of what
  5584. had happened.  Why is that the ds3100 "at" binaries (at, atq, atrm)
  5585. lose their setuid bit, but none of the binaries for the other
  5586. architectures do?
  5587.  
  5588. mike
  5589.  
  5590.  
  5591. Log-Number: 32495
  5592. Date: Wed, 10 Jun 92 18:20:16 PDT
  5593. From: mottsmth (Jim Mott-Smith)
  5594. Subject: Allspice died with lfsSetSegUsage bad segment number
  5595.  
  5596.  
  5597. Allspice died with lfsSetSegUsage bad segment number 937354
  5598. Core is in /home/ginger/cores/allspice.lfsSetSegUsage
  5599.  
  5600. -- Jim M-S
  5601.  
  5602.  
  5603. Log-Number: 32497
  5604. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5605. Date: Fri, 12 Jun 1992 11:59:32 PDT
  5606. Subject: sendmail is acting up again
  5607.  
  5608.  
  5609. Sendmail has been misbehaving again this morning. It keeps getting
  5610. "NOQUEUE: SYSERR: getrequests: accept: invalid argument" messages.
  5611. Someone has put in code to reopen the socket if the accept fails,
  5612. but that doesn't seem to fix the problem.  Restarting sendmail
  5613. seems to do the trick (at least for a short time).  We should
  5614. get serious about fixing this bug.
  5615.  
  5616. John
  5617.  
  5618.  
  5619. Log-Number: 32498
  5620. Date: Fri, 12 Jun 92 14:38:45 PDT
  5621. From: shirriff@ginger.CS.Berkeley.EDU (Ken Shirriff)
  5622.  
  5623. Allspice crashed with LfsSetSegUsage bad segment number 1776985.
  5624. I think this is an old problem, but I took a core dump anyways in
  5625. case it is not.
  5626.  
  5627.  
  5628. Log-Number: 32501
  5629. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5630. Date: Fri, 12 Jun 1992 16:18:39 PDT
  5631. Subject: Proc_StringNCopy
  5632.  
  5633. The routine Proc_StringNCopy() has an argument "numBytes" whose
  5634. comment says /* Maximum number of bytes to copy. */. This isn't strictly
  5635. true, however, as a null character is always appended to the output
  5636. string even if you stopped copying characters because numBytes was
  5637. exceeded. This means you may get the null written beyond the end of
  5638. the buffer.  Perhaps numBytes should be the maximum number of non-null
  5639. bytes copied, but even so some of the routines in the fs module are
  5640. using it incorrectly. 
  5641.  
  5642. John
  5643.  
  5644.  
  5645. Log-Number: 32502
  5646. Subject: lust crash: /user5 filled up
  5647. Date: Fri, 12 Jun 92 17:48:07 PDT
  5648. From: Mike Kupfer <kupfer>
  5649.  
  5650. I rebooted with the 1.114 kernel.
  5651.  
  5652. mike
  5653.  
  5654.  
  5655. Log-Number: 32503
  5656. Date: Sat, 13 Jun 92 10:46:34 PDT
  5657. From: mottsmth (Jim Mott-Smith)
  5658. Subject: Lust died with TLB load address error
  5659.  
  5660.  
  5661. Lust was dead when I came in. The console said:
  5662.     MachKernelExceptionHandler: Address error on load:
  5663.       addr: 3 PC 8004ee44
  5664.     TLB load address error exception at 8004ee44
  5665.  
  5666. I rebooted with 'new'.
  5667.  
  5668. -- Jim M-S
  5669.  
  5670.  
  5671. Log-Number: 32504
  5672. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5673. Date: Sat, 13 Jun 1992 21:09:44 PDT
  5674. Subject: lust crash (followup)
  5675.  
  5676.  
  5677. PC 0x8004ee44 is in DevSCSIC90Intr:
  5678.  
  5679. (kgdb) l *0x8004ee44
  5680. 0x8004ee44 is in DevSCSIC90Intr (ds5000.md/devSCSIC90.c, line 441).
  5681. 436            if (ctrlPtr->interruptDevPtr != (Device *)NIL) {
  5682. 437                MASTER_UNLOCK(&(ctrlPtr->mutex));
  5683. 438                return TRUE;
  5684. 439            } else {
  5685. 440                printf("%s: illegal command.\n",
  5686. 441                devPtr->handle.locationName);
  5687. 442                status = FAILURE;
  5688. 443            }
  5689. 444         }
  5690. 445         if (interruptReg & IR_SLCT_ATN) {
  5691.  
  5692. If this happens again please debug it so we can figure out what
  5693. happened.
  5694.  
  5695.  
  5696. John
  5697.  
  5698.  
  5699. Log-Number: 32505
  5700. Date: Mon, 15 Jun 92 07:52:43 PDT
  5701. From: bmiller (Bob Miller)
  5702. Subject: reboot
  5703.  
  5704. Allspice was hung this morning.  I rebooted.
  5705. The console was showing:
  5706.  
  5707.  
  5708. Proc_Exec: Can't run sun3 ZMAGIC executable file on sun4.
  5709.  
  5710. No stream <363903> for client 1
  5711. Fsrmt_RpcRead no stream <363903> to handle <0,47084> client 1
  5712.  
  5713.  
  5714. Log-Number: 32514
  5715. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5716. Date: Tue, 16 Jun 1992 21:52:35 PDT
  5717. Subject: /usr/sww/bin/xwaisq crashes ds5000
  5718.  
  5719. The stack appears to be messed up:
  5720.  
  5721. (kgdb) where
  5722. #0  UNIXSyscall () (ds5000.md/machAsm.s line 2285)
  5723. #1  0x80033ad8 in UNIXSyscall () (ds5000.md/machAsm.s line 2123)
  5724. (kgdb) l * $pc
  5725. 0x80033ae0 is in UNIXSyscall (ds5000.md/machAsm.s, line 2285).
  5726. 2280            /*
  5727. 2281             * If memory interrupts aren't turned on then we can't do a
  5728. 2282             * probe.
  5729. 2283             */
  5730. 2284            mfc0    t0, MACH_COP_0_STATUS_REG
  5731. 2285            nop
  5732. 2286            and     t0, t0, MACH_INT_MASK_3 | MACH_SR_INT_ENA_CUR
  5733. 2287            beq     t0, MACH_INT_MASK_3 | MACH_SR_INT_ENA_CUR, 1f
  5734. 2288            nop
  5735. 2289            j       ra
  5736.  
  5737. The pc is actually in Mach_Probe. Something is really going off the deep
  5738. end. This happened running ds5000.1.114.
  5739.  
  5740. John
  5741.  
  5742.  
  5743. Log-Number: 32515
  5744. Date: Wed, 17 Jun 92 12:30:35 PDT
  5745. From: mottsmth (Jim Mott-Smith)
  5746. Subject: Can't run xv under compatibility
  5747.  
  5748.  
  5749. Trying to run /usr/sww/X11/bin/xv on Sabotage says:
  5750.     ld.so: text write-enable error (22) for main_$main_
  5751.  
  5752. Running it on Covet seems to hang the process.
  5753.  
  5754. -- Jim M-S
  5755.  
  5756.  
  5757. Log-Number: 32518
  5758. Date: Thu, 18 Jun 92 15:32:47 PDT
  5759. From: sullivan (Mark Sullivan)
  5760. Subject: make path problems
  5761.  
  5762.  
  5763. My makefile contains the following target:
  5764.  
  5765. ------------------------------
  5766. clean:
  5767.     /bin/rm *.o
  5768.     ln -s vmStubs.back vmStubs.o
  5769.     /bin/rm testgram.c
  5770. ------------------------------
  5771.  
  5772. If I execute "make" on that makefile, I get:
  5773.  
  5774. babylon<1> make clean
  5775. /bin/rm *.o
  5776. ln -s vmStubs.back vmStubs.o
  5777. ln: not found
  5778. *** Error code 1
  5779.  
  5780. "pmake" doesn't seem to have any problems finding ln and make
  5781. works fine if I replace ln with /bin/ln.  Sounds like make has
  5782. a path problem.
  5783.  
  5784. Mark
  5785.  
  5786.  
  5787. Log-Number: 32519
  5788. Date: Thu, 18 Jun 92 15:35:41 PDT
  5789. From: sullivan (Mark Sullivan)
  5790. Subject: amended bug report
  5791.  
  5792.  
  5793. Problem only occurs on ds3100.  make works fine on the ds5000.
  5794.  
  5795. Mark
  5796.  
  5797.  
  5798. Log-Number: 32522
  5799. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5800. Date: Fri, 19 Jun 1992 17:57:55 PDT
  5801. Subject: lfs bug?
  5802.  
  5803.  
  5804. Pete Chen has been having some problems with LFS deadlocking, and
  5805. I think I've tracked down the problem but I want to double-check
  5806. with Mendel to be sure. There is a loop at the top of PlaceFileInSegment()
  5807. in the LFS module in which all the dirty blocks for a file are
  5808. obtained from Fscache_GetDirtyBlock(). One of the things that
  5809. Fscache_GetDirtyBlock() does is set the FSCACHE_BLOCK_BEING_WRITTEN
  5810. flag for the block. Later in PlaceFileInSegment() the dirty blocks
  5811. for the file are processed in the order: doubly-indirect, indirect,
  5812. direct.  This loop places the blocks into the segment, and while
  5813. doing so has to update the index for the block. It does this by
  5814. calling LfsFile_SetIndex(), which updates the index for the block,
  5815. whether it be in a descriptor or an indirect block.  The cacheFlags
  5816. parameter passed to LfsFile_SetIndex() is FSCACHE_CANT_BLOCK, whose
  5817. meaning is pretty much undocumented, but which shouldn't be confused
  5818. with FSCACHE_DONT_BLOCK. Here is how the deadlock happens.  One of
  5819. the blocks to be written is pointed to by an indirect block that
  5820. is also dirty. When LfsFile_SetIndex() is called for this block it
  5821. eventually calls Fscache_FetchBlock() for the parent block, but
  5822. Fscache_FetchBlock() blocks because the parent block is marked as
  5823. FSCACHE_BLOCK_BEING_WRITTEN, and the FSCACHE_DONT_BLOCK flag is
  5824. not set. Then lfs comes to a grinding halt.  So, I think the correct
  5825. solution is to pass FSCACHE_DONT_BLOCK as (one of) the flags to
  5826. LfsFile_SetIndex(), but to be honest I don't fully understand the
  5827. difference between these two flags and I don't really want to
  5828. mix-n-match.
  5829.  
  5830. Actually, it appears that if the FSCACHE_DONT_BLOCK were set then
  5831. Fscache_FetchBlock() would return a NIL block pointer, causing
  5832. LfsFile_SetIndex() to return FS_WOULD_BLOCK, causing PlaceFileInSegment()
  5833. to panic. So, there doesn't appear to be an easy way out of this.
  5834. I'm hoping Mendel will understand all of this and will suggest a
  5835. possible solution (or point out my mistake in understanding the
  5836. code).
  5837.  
  5838. John
  5839.  
  5840.  
  5841. Log-Number: 32523
  5842. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  5843. Date: Fri, 19 Jun 1992 18:21:28 PDT
  5844. Subject: lfs bug followup
  5845.  
  5846.  
  5847. I talked to Peter Chen and his application does random overwrite
  5848. and read of an exising file (no appends).  I was curious as to why
  5849. the indirect block was marked as dirty anyway.  It seems to me that
  5850. the only way an indirect block could be dirty is if you added a
  5851. new block to a file, which Pete isn't doing.  My guess now is that
  5852. the indirect block was dirtied during a previous segment write when
  5853. one of its children was written.  AppendBlock() just updates the
  5854. pointer in the indirect block, then returns the block to the cache
  5855. via Fscache_UnlockBlock(). It doesn't appear that it will be written
  5856. out in the same segment. This is kind of interesting because it
  5857. means that a randomly written block will not be in the same segment
  5858. as its indirect block (I don't know if the same is true of the
  5859. descriptor). Anyway, if another child block gets written before
  5860. the indirect block is written then the deadlock will occur.  At
  5861. least that's what I think anyway.
  5862.  
  5863. John
  5864.  
  5865.  
  5866.  
  5867. Log-Number: 32528
  5868. Subject: Re: lfs bug? (
  5869. Date: Mon, 22 Jun 92 13:31:55 -0700
  5870. From: mendel@lagunita.stanford.edu
  5871.  
  5872.  
  5873. > Pete Chen has been having some problems with LFS deadlocking, and
  5874. > I think I've tracked down the problem but I want to double-check
  5875. > with Mendel to be sure. There is a loop at the top of PlaceFileInSegment()
  5876. > in the LFS module in which all the dirty blocks for a file are
  5877. > obtained from Fscache_GetDirtyBlock(). One of the things that
  5878. > Fscache_GetDirtyBlock() does is set the FSCACHE_BLOCK_BEING_WRITTEN
  5879. > flag for the block. Later in PlaceFileInSegment() the dirty blocks
  5880. > for the file are processed in the order: doubly-indirect, indirect,
  5881. > direct.  This loop places the blocks into the segment, and while
  5882. > doing so has to update the index for the block. It does this by
  5883. > calling LfsFile_SetIndex(), which updates the index for the block,
  5884. > whether it be in a descriptor or an indirect block.  The cacheFlags
  5885. > parameter passed to LfsFile_SetIndex() is FSCACHE_CANT_BLOCK, whose
  5886. > meaning is pretty much undocumented, but which shouldn't be confused
  5887. > with FSCACHE_DONT_BLOCK. 
  5888.  
  5889. FSCACHE_DONT_BLOCK means don't block if the requested block is busy.
  5890. FSCACHE_CANT_BLOCK means the requesting process can not block for any
  5891. reason. The difference between the flags is the CANT_BLOCK flag will 
  5892. work even if the cache is "full" of dirty blocks.  It will never block
  5893. because the cache contains no clean blocks.  Basically the flag informs
  5894. the cache code that it should dip into its list of reserved 
  5895. blocks if necessary.
  5896.  
  5897.  
  5898. > Here is how the deadlock happens.  One of
  5899. > the blocks to be written is pointed to by an indirect block that
  5900. > is also dirty. When LfsFile_SetIndex() is called for this block it
  5901. > eventually calls Fscache_FetchBlock() for the parent block, but
  5902. > Fscache_FetchBlock() blocks because the parent block is marked as
  5903. > FSCACHE_BLOCK_BEING_WRITTEN, and the FSCACHE_DONT_BLOCK flag is
  5904. > not set. Then lfs comes to a grinding halt.  So, I think the correct
  5905. > solution is to pass FSCACHE_DONT_BLOCK as (one of) the flags to
  5906. > LfsFile_SetIndex(), but to be honest I don't fully understand the
  5907. > difference between these two flags and I don't really want to
  5908. > mix-n-match.
  5909.  
  5910. Yuck.
  5911.  
  5912. > Actually, it appears that if the FSCACHE_DONT_BLOCK were set then
  5913. > Fscache_FetchBlock() would return a NIL block pointer, causing
  5914. > LfsFile_SetIndex() to return FS_WOULD_BLOCK, causing PlaceFileInSegment()
  5915. > to panic. So, there doesn't appear to be an easy way out of this.
  5916. > I'm hoping Mendel will understand all of this and will suggest a
  5917. > possible solution (or point out my mistake in understanding the
  5918. > code).
  5919.  
  5920. You are right.
  5921.  
  5922. > I talked to Peter Chen and his application does random overwrite
  5923. > and read of an exising file (no appends).  I was curious as to why
  5924. > the indirect block was marked as dirty anyway.  It seems to me that
  5925. > the only way an indirect block could be dirty is if you added a
  5926. > new block to a file, which Pete isn't doing.  
  5927.  
  5928. The file index (i.e. inode and indirect blocks) are modified everytime a
  5929. block is written is a LFS.  See below.
  5930.  
  5931. > My guess now is that
  5932. > the indirect block was dirtied during a previous segment write when
  5933. > one of its children was written.  AppendBlock() just updates the
  5934. > pointer in the indirect block, then returns the block to the cache
  5935. > via Fscache_UnlockBlock(). It doesn't appear that it will be written
  5936. > out in the same segment. This is kind of interesting because it
  5937. > means that a randomly written block will not be in the same segment
  5938. > as its indirect block (I don't know if the same is true of the
  5939. > descriptor). Anyway, if another child block gets written before
  5940. > the indirect block is written then the deadlock will occur.  At
  5941. > least that's what I think anyway.
  5942.  
  5943.  
  5944. Here is what I think is happening:
  5945.  
  5946. The code in PlaceFileInSegment() treats a file as a tree with the inode
  5947. being the root and the data blocks being the leaves.  It looks something
  5948. like:
  5949.                   Inode
  5950.              ______________________|____________________
  5951.             /               |                           \
  5952.            |                |                           |
  5953.            |               I-1                         I-2
  5954.            |                |                     ______|_____
  5955.           /|                |                    /            \
  5956.          / |\               |                   /              \
  5957.         /  | \          ____|____             I-3              I-4   ....
  5958.        /  /   \        /  /      \          ___|___         ____|___ 
  5959.       /  |     \      /  /        \        /  /    \       /   /    \   
  5960.      D0 D1 ... D9   D10 D11 ... D1033  D1034 D1035 ...  D2058 D2059 ...
  5961.  
  5962. Where Dn are data blocks and I-n are indirect blocks.
  5963.  
  5964. The code works by placing the tree in the segment one level at a time starting 
  5965. with the leaves (Dn).  Placing the data blocks causes the first level 
  5966. indirect blocks (I-3, I-4, etc) to be modified.  These blocks are placed
  5967. next.  Next the I-1 and I-2 blocks are placed in the segment.  Finally,
  5968. once all the indirect and data blocks are placed in the segment the inode
  5969. is placed in the segment. The principle of placing the tree bottom up 
  5970. means that all the modifications to an indirect block should be made before
  5971. the indirect block is placed in the segment.  Therefore the deadlock 
  5972. you found should not occur.
  5973.  
  5974. The deadlock occurs because PlaceFileInSegment() may be called multiple
  5975. times for the same file.  This happens when the current segment summary
  5976. block fills and a new one needs to be allocated.  What happens is that
  5977. PlaceFileInSegment() gets a file and starts placing it in a segment.  
  5978. It places all the dirty data blocks and some of the indirect blocks. 
  5979. At this point it detects that the segment summary block is filled so
  5980. it can't add the rest of the indirect blocks.  PlaceFileInSegment() then
  5981. returns TRUE saying it has more data to place in a segment.  The 
  5982. segment layout code can then add a new segment summary block and call
  5983. PlaceFileInSegment() again.  PlaceFileInSegment() starts with the data
  5984. blocks (there should be none dirty) and then places the rest of the
  5985. indirect blocks and the inode.  
  5986.  
  5987. The deadlock occurs on Peter's test case because during the time the
  5988. indirect blocks and new segment summary block are being added to the
  5989. segment, the program modifies some data blocks in the file that
  5990. happen to be mapped by indirect blocks that have already been placed
  5991. in the segment.  When PlaceFileInSegment() is called for the second
  5992. time on the file it finds these data blocks and tries to place them 
  5993. in the segment.  The deadlock occurs during the update to the indirect
  5994. block which is already placed in the segment. 
  5995.  
  5996. For example, assume the program modified D1034.  This would cause D1034, 
  5997. I-3, I-2, and the inode to be placed in the segment.  Assume that there is 
  5998. no room for I-2 so a new segment summary block is allocated. At the same 
  5999. time the program modifies D1035.  Now when PlaceFileInSegment() is called 
  6000. it will place D1035 and deadlock updating I-3.  
  6001.  
  6002. I'll see if I can come up with a fix for this problem.
  6003.  
  6004.     Mendel
  6005.  
  6006.  
  6007. Log-Number: 32524
  6008. Subject: random migd problems
  6009. Date: Sat, 20 Jun 92 14:06:15 PDT
  6010. From: Mike Kupfer <kupfer>
  6011.  
  6012. When I logged onto sage this afternoon, its local migd was hung.
  6013. According to the global log, sage had tried a couple times this
  6014. morning to become the global master and had failed with
  6015.  
  6016.   MigPdev_OpenMaster: couldn't open "/sprite/admin/migd/pdev"
  6017.   (text file or pseudo-device busy) 
  6018.  
  6019. Eventually lust (!) became the global master, but sage was apparently
  6020. unable to talk to it.  There were a bunch of messages in sage's migd
  6021. log that said
  6022.  
  6023.   ContactGlobal: couldn't open /sprite/admin/migd/pdev: invalid
  6024.   argument
  6025.  
  6026. I had to kill off and restart the migd on sage.
  6027.  
  6028. By the way, do we really want file servers acting as the migd global
  6029. master?
  6030.  
  6031. mike
  6032.  
  6033.  
  6034. Log-Number: 32527
  6035. Date: Mon, 22 Jun 92 11:01:36 -0700
  6036. From: sullivan@postgres.Berkeley.EDU (Mark Sullivan)
  6037. Subject: recovery problem
  6038.  
  6039.  
  6040. My make file contains the following:
  6041.  
  6042. clrdb:
  6043.     /bin/rm -r /postdev/sullivan/data/base
  6044.  
  6045. I run "pmake clrdb" and pmake looks like it is executing, but
  6046. the files don't go away.  On the console (of arson), the 
  6047. following messages appear:
  6048.  
  6049. 6/22/92 6:33:51 babylon (94) RmtPdev "/sprite/admin/migd/pdev" <917514,-917192620> : stale handle
  6050. 6/22/92 6:33:51 babylon (94) - recovering handles
  6051. 6/22/92 6:33:51 babylon (94) RmtPdev "/sprite/admin/migd/pdev" <917514,-917192620> Reopen failed : cacheable/busy conflict
  6052. 6/22/92 6:33:51 babylon (94) Recovery failed: cacheable/busy conflict
  6053.  
  6054. Note that it is not 6:30am now, so the recovery problem was hours ago.
  6055. If I run the rm locally, there is no problem.  If I run pmake -X, there
  6056. is no problem.
  6057.  
  6058. Mark
  6059.  
  6060.  
  6061. ps. The file system in which these files are stored was corrupted and
  6062. regenerated from a backup yesterday.  This could be part o the problem.
  6063.  
  6064.  
  6065.  
  6066. Log-Number: 32530
  6067. Subject: more on writeback problem during cleaning
  6068. Date: Mon, 22 Jun 92 15:45:06 PDT
  6069. From: Mike Kupfer <kupfer>
  6070.  
  6071. Background: I ran into a problem some weeks ago where a compilation
  6072. got migrated to covet and then the .o file couldn't get written back
  6073. to the file server.  Eventually the server timed out the writeback
  6074. request, filling the file with zeroes.  This eventually caused ld to
  6075. choke.  At the time covet couldn't do the writeback, the server was
  6076. cleaning the filesystem that the .o file lived on.  We thought that
  6077. maybe the problem was that all the RPC channels on covet were busy, so
  6078. I added some printf's to complain whenever a machine runs out of
  6079. channels.
  6080.  
  6081. Well, I just ran into the same writeback problem, this time between
  6082. clove and lust.  Lust was cleaning /user5.  Clove did not report
  6083. running out of RPC channels, so I think the problem is elsewhere.  I'm
  6084. not surprised by this, given how often clients get stuck because of
  6085. cleaning (e.g., on /swap1).
  6086.  
  6087. Here's an excerpt from lust's syslog:
  6088.  
  6089.   /user5: Cleaning started - deficit 44 segs
  6090.   /user5: Cleaned 44 segments in 18 segments
  6091.   /user5: Cleaning started - deficit 28 segs
  6092.   ConsistTimeout (1 minutes) client 57 write-back file <3,108638> "fsrmtDomain.o"
  6093.     Client state killed: 0 refs 0 write 0 exec
  6094.   FsrmtFileVerify: "fsrmtDomain.o" <3,108638> client 57 not found
  6095.   Fsrmt_RpcWrite, stale handle <3,108638> client 57
  6096.   LE ethernet: Missed a packet.
  6097.   Fscache_BlockRead: Giving zeros to "fsrmtDomain.o" <3,108638> block 2 amount 174743
  6098.   LE ethernet: Missed a packet.
  6099.   /user5: Cleaned 69 segments in 35 segments
  6100.   /user5: Cleaning started - deficit 21 segs
  6101.   /user5: Cleaned 95 segments in 52 segments
  6102.   /user5: Cleaning started - deficit 21 segs
  6103.   /user5: Cleaned 118 segments in 67 segments
  6104.   /user5: Cleaning started - deficit 15 segs
  6105.  
  6106. Here's an excerpt from clove's syslog:
  6107.  
  6108.   6/22/92 15:17:00 allspice (14) Client backing off again from negative ack.
  6109.   RpcDoCall: <write> RPC to lust is hung
  6110.   <write> RPC ok
  6111.   6/22/92 15:24:17 lust (1) RmtFile "ds3100.md/fsrmtDomain.o" <3,108638> Write-back failed: stale handle
  6112.   <prefix> 6/22/92 15:24:22 broadcast (0) RPC timed-out
  6113.   6/22/92 15:24:22 lust (1) - recovering handles
  6114.  
  6115.  
  6116. mike
  6117.  
  6118. [25-Jun-92: the next time this happens, the user should get the
  6119. recovery debug log, e.g., using L1-y. -mdk]
  6120.  
  6121.  
  6122. Log-Number: 32531
  6123. Subject: can't boot 1.114 on clove
  6124. Date: Mon, 22 Jun 92 15:58:57 PDT
  6125. From: Mike Kupfer <kupfer>
  6126.  
  6127. It prints a half-dozen lines of what looks to be FDDI debugging
  6128. information, followed by a complaint that the PARAM command didn't
  6129. work, then it goes into the debugger.
  6130.  
  6131. I left it in the debugger in case anyone wants to look at it.
  6132.  
  6133. mike
  6134.  
  6135.  
  6136. Log-Number: 32532
  6137. Date: Tue, 23 Jun 92 08:46:25 PDT
  6138. From: bmiller (Bob Miller)
  6139. Subject: check lw533
  6140.  
  6141.  
  6142. I'm not sure whether it's Sprite's or SHALLOT's problem...our printer,
  6143. lw533, is hung.  I've tried 'restart' through lpc with no luck.
  6144.  
  6145. lpq shows:
  6146.  
  6147. subversion.Berkeley.EDU: waiting for shallot to come up
  6148. Rank   Owner      Job  Files                                 Total Size
  6149. 1st    bmiller    717  /tmp/ES154161                         6446 bytes
  6150.  
  6151. connection to shallot is down: connection timed out
  6152.  
  6153. Can someone look into this as soon as possible.  Thanks.
  6154.  
  6155.  
  6156.     Bob
  6157.  
  6158.  
  6159. Log-Number: 32534
  6160. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  6161. Date: Tue, 23 Jun 1992 10:54:24 PDT
  6162. Subject: Rpc module breaks Net locking
  6163.  
  6164.  
  6165. The RPC module sends an explicit acknowledgment down an idle channel
  6166. when it is closed. This is done at interrupt level, and is the
  6167. source of our "wrong server ID" messages.  It turns out that it
  6168. also breaks the net driver if the driver contains proper locking.
  6169. Our current Ethernet drivers just turn off interrupts rather than
  6170. use MASTER_LOCK and MASTER_UNLOCK. Geoff added locking to his FDDI
  6171. driver, which causes a deadlock when a channel is closed because
  6172. the lock is grabbed in the interrupt routine so that the subsequent
  6173. call to Net_Output can't get it.
  6174.  
  6175. I plan on fixing the RPC module but in the meantime I'll push out
  6176. an FDDI driver that doesn't use locks.
  6177.  
  6178. John
  6179.  
  6180.  
  6181.  
  6182. Log-Number: 32535
  6183. From: jhh@sprite.Berkeley.EDU (John H. Hartman)
  6184. Date: Tue, 23 Jun 1992 10:58:26 PDT
  6185. Subject: clarification on Net/RPC deadlock
  6186.  
  6187.  
  6188. My previous message is wrong concerning our current ethernet drivers.
  6189. The Lance driver does use a master lock, only the interrupt handler
  6190. does not grab it so the deadlock does not occur.
  6191.  
  6192. John
  6193.  
  6194.  
  6195. Log-Number: 32536
  6196. Date: Tue, 23 Jun 92 13:04:28 -0700
  6197. From: kupfer@dill (Mike Kupfer)
  6198. Subject: lust crash: address fault in Fsrmt_RpcRead
  6199.  
  6200. Right after the "packet too big" crash, lust died again.  The console
  6201. said
  6202.  
  6203.   Fsrmt_RpcRead, no handle <0, 116823> client 73
  6204.   Fsrmt_RpcRead, no handle <0, 2> client 73
  6205.   bad Vaddr = 0xce66d150
  6206.  
  6207. The PC was 0x800905b0 (running the 1.114 kernel).
  6208.  
  6209. John and I poked around a bit.  The crash was in Fsrmt_RpcRead.  It
  6210. looked like larceny (client 73) had sent an RPC with a garbage
  6211. parameter block.
  6212.  
  6213.   (kgdb) bt
  6214.   #0  0x800905b0 in Fsrmt_RpcRead (srvToken=(int *) 0xc04d03ac,
  6215.       clientID=73, command=8, storagePtr=(struct Rpc_Storage *)0xc80a3fa8) 
  6216.       (fsrmtIO.c line 229)
  6217.   #1  0x800e71d4 in Rpc_Server () (rpcServer.c line 258)
  6218.   #2  0x800ec0c4 in Sched_StartKernProc (func=(void (*)()) 0x800e6e10 <Rpc_Server>)
  6219.       (schedule.c line 1014)
  6220.   #3  0x800ec03c in Sched_StartKernProc (func=(void (*)()) 0x1) 
  6221.       (schedule.c line 984)
  6222.   (kgdb) print *paramsPtr
  6223.   $4 = {fileID = {type = -1068538984, serverID = -1068538984,
  6224.                   major = -1070625732, minor = -1068538988}, 
  6225.         streamID = {type = 73, serverID = -1, major = 41, minor = 0},
  6226.         waiter = {links = {prevPtr = 0x18, nextPtr = 0xffffffff}, 
  6227.                   hostID = 1325407, pid = 1325423, waitToken = 1325399}, 
  6228.         io = {buffer = 0x10b9b5 <Address 0x10b9b5 out of bounds>, 
  6229.               length = 1202153, offset = 1325383, flags = 41, procID = 0, 
  6230.               familyID = 20, uid = -1096116897, reserved = -1068538684}}
  6231.  
  6232. We put larceny into the debugger and rebooted lust, which promptly
  6233. crashed again with a similar set of error messages, only with paprika
  6234. as the guilty client.  This time lust was not debuggable.
  6235.  
  6236.   (kgdb) attach lust
  6237.   Attaching remote machine lust
  6238.   Remote debugging using lust
  6239.   Dumping system log ...
  6240.   Error reading memory address 0x3334332e: I/O error (5).
  6241.  
  6242. This was taken as an indication that maybe lust was having some
  6243. network problems.  John and Mary power cycled it and rebooted, and
  6244. that seems to have fixed things.
  6245.  
  6246. mike
  6247.  
  6248.  
  6249. Log-Number: 32537
  6250. Date: Tue, 23 Jun 92 12:47:59 -0700
  6251. From: kupfer@dill (Mike Kupfer)
  6252. Subject: lust crash: output packet too big
  6253.  
  6254. Lust died with 
  6255.  
  6256.   Fatal Error: OutputPacket: packet too large (4066)
  6257.  
  6258. It was not debuggable, so I rebooted.
  6259.  
  6260. mike
  6261.  
  6262.  
  6263. Log-Number: 32541
  6264. Date: Wed, 24 Jun 92 17:09:27 -0700
  6265. From: kupfer@dill (Mike Kupfer)
  6266. Subject: lust crash: address error
  6267.  
  6268. Lust died again with another addressing problem.  There weren't any
  6269. interesting looking error messages on the console.  The stack backtrace
  6270. was
  6271.  
  6272.   #0  0xc819bfb8 in ?? ()
  6273.   #1  0x8008d82c in Fsrmt_RpcClose (srvToken=(int *) 0xc053b7cc,
  6274.       clientID=11, command=10, storagePtr=(struct Rpc_Storage *) 0xc819bfa8)
  6275.       (fsrmtDomain.c line 719)
  6276.   #2  0x800e71d4 in Rpc_Server () (rpcServer.c line 258)
  6277.   #3  0x800ec0c4 in Sched_StartKernProc (func=(void (*)()) 0x800e6e10
  6278.       <Rpc_Server>) (schedule.c line 1014)
  6279.   #4  0x800ec03c in Sched_StartKernProc (func=(void (*)()) 0xc0533980)
  6280.       (schedule.c line 984)
  6281.  
  6282. The storage passed to Fsrmt_RpcClose was 
  6283.  
  6284.   (kgdb) print storage
  6285.   $1 = {requestParamPtr = 0xc053ca4c "\374\347j\366\374\347j\366\001",
  6286.         requestParamSize = 0, requestDataPtr = 0xc053ce4c "kupfer/Mail/context",
  6287.         requestDataSize = 0, replyParamPtr = 0xffffffff <Address 0xffffffff out of bounds>,
  6288.         replyParamSize = 0, replyDataPtr = 0xffffffff <Address 0xffffffff out of bounds>,
  6289.         replyDataSize = 0}
  6290.  
  6291. Note that the request parameter and data sizes are both 0.  The
  6292. parameter block looked like
  6293.  
  6294.   $4 = {fileID = {type = -160765956, serverID = -160765956, major = 1,
  6295.                   minor = 357},
  6296.         streamID = {type = 1849, serverID = 1, major = 1, minor = 239752},
  6297.         procID = 663886, flags = 33558533,
  6298.         closeData = {attrs = {firstByte = -1, lastByte = 49151, 
  6299.                               accessTime = 709239284, modifyTime = 0,
  6300.                               createTime = 700009914, userType = 0,
  6301.                               permissions = 493, uid = 891, gid = 155}}, 
  6302.         closeDataSize = 36}
  6303.  
  6304. Note the bogus file type, which caused lust to jump off into
  6305. hyperspace.
  6306.  
  6307. Either paprika sent a bogus packet, or lust is having network
  6308. (possibly hardware?) problems.
  6309.  
  6310. We rebooted lust with 1.114.
  6311.  
  6312. mike
  6313.  
  6314.  
  6315. Log-Number: 32542
  6316. Subject: potential race during shutdown
  6317. Date: Wed, 24 Jun 92 17:12:39 PDT
  6318. From: Mike Kupfer <kupfer>
  6319.  
  6320. The LOCK_HANDLE macro that locks FS handles will bail out if the
  6321. system is shutting down.  This means that the caller could "lock" an
  6322. already locked handle, and the original holder of the lock could
  6323. unlock the handle, leaving the caller to operate on an unlocked
  6324. handle.  When the caller releases its reference to the handle,
  6325. Fsutil_HandleReleaseHdr panics because it was told that the handle is
  6326. already locked, but by inspection it knows that the handle isn't
  6327. locked.
  6328.  
  6329. I've seen this happen once with the Sprite server, when an RPC server
  6330. tried to close its current working directory while exiting.  Do RPC
  6331. servers in native Sprite have a non-nil current working directory?
  6332.  
  6333. mike
  6334.  
  6335.  
  6336. Log-Number: 32543
  6337. From: mgbaker (Mary Gray Baker)
  6338. Subject: Debug info in netroute
  6339. Date: Thu, 25 Jun 92 10:23:52 PDT
  6340.  
  6341. There's is so much debug info being printed from netroute, that it takes
  6342. a year to boot a sparcstation.  Is this debug info really necessary?
  6343.  
  6344. Mary
  6345.  
  6346.